結果

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

テストケース

テストケース 結果 得点 実行時間 メモリ使用量
1 AC 100% 2ms 7696KB
2 AC 100% 2ms 8192KB
3 AC 100% 2ms 7664KB
4 AC 100% 2ms 7520KB
5 AC 100% 2ms 8320KB
6 AC 100% 1ms 7680KB
7 AC 100% 2ms 7424KB
8 AC 100% 5ms 7712KB
9 AC 100% 2ms 8320KB
10 WA 0% 2ms 8304KB
11 AC 100% 2ms 7504KB
12 AC 100% 4ms 7968KB
13 AC 100% 2ms 8320KB
14 AC 100% 2ms 7840KB
15 WA 0% 2ms 7616KB
16 AC 100% 2ms 8320KB
17 AC 100% 2ms 8320KB
18 AC 100% 2ms 8336KB
19 AC 100% 2ms 8336KB
20 WA 0% 2ms 7680KB

ソースコード

#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),greater<ll>());
	ll opsum;
	cin >> opsum;
	REP(i,vsum.size()-1)
	{
		if(vsum[i]==opsum&&vsum[i]!=vsum[i+1])
		{
			cout << vsum[i] << endl;
			return 0;
		}
	}
	cout << vsum[vsum.size() - 1] << endl;
}