結果

提出番号 990
提出者 strasp09
言語 C++
提出日時 2017-08-03 21:48:00
問題名 (28)いつだって一位の男、olphe君
結果 WA
点数 0%

テストケース

テストケース 結果 得点 実行時間 メモリ使用量
1 WA 0% 3ms 7632KB
2 WA 0% 2ms 8336KB
3 WA 0% 3ms 7888KB
4 WA 0% 3ms 7904KB
5 WA 0% 3ms 7984KB
6 WA 0% 3ms 7760KB
7 WA 0% 3ms 8256KB
8 WA 0% 3ms 7504KB
9 WA 0% 3ms 8256KB
10 AC 100% 11ms 7712KB
11 WA 0% 11ms 7920KB
12 AC 100% 5ms 8256KB
13 WA 0% 4ms 7888KB
14 WA 0% 4ms 8272KB
15 AC 100% 2ms 7920KB
16 AC 100% 6ms 7712KB
17 WA 0% 3ms 7920KB
18 WA 0% 4ms 8240KB
19 WA 0% 2ms 7680KB
20 AC 100% 2ms 8352KB

ソースコード

#include <bits/stdc++.h>
const long long MOD = 1000000007;
const int INF = INT_MAX / 2;
const long double PI = 3.1415926;
#define FOR(i, r, n) for(int i=(ll)(r); i<(ll)(n); i++) 
#define REP(i, n) FOR(i, (0), n)
#define ALL(r) r.begin(), r.end()
#define ll long long int
#define vci vector<ll>
#define vcs vector<string>
#define vcp vector<pair<ll, ll>>
#define vct vector<tuple<ll, ll, ll>>
using namespace std;
//vector<vector<ll>> vv(n, vector<ll>(n));

typedef int Weight;
struct Edge
{
	int from, to; Weight cost;
	bool operator < (const Edge& e) const { return cost < e.cost; }
	bool operator > (const Edge& e) const { return cost > e.cost; }
};
typedef vector<Edge> Edges;
typedef vector<Edges> Graph;
void add_edge(Graph &g, int from, int to, Weight cost)
{
	g[from].push_back(Edge{ from, to, cost });
}

int main()
{
	ll n;
	cin >> n;
	vci v(n), vsum;
	REP(i, n) cin >> v[i];
	ll cnt = 0, m = pow(2, n);
	while(cnt<m)
	{
		ll tmp = cnt, sum = 0, pos=0;
		while(tmp)
		{
			sum += (tmp & 1)*v[pos];
			pos++;
			tmp >>= 1;
		}
		vsum.push_back(sum);
		cnt++;
	}
	sort(ALL(vsum));
	ll opsum;
	cin >> opsum;
	REP(i,vsum.size()-1)
	{
		if(vsum[i]==opsum&&vsum[i]!=vsum[i+1])
		{
			cout << vsum[i + 1] << endl;
			return 0;
		}
	}
	cout << vsum[vsum.size() - 1] << endl;
}