結果

問題 No.4 おもりと天秤
コンテスト
ユーザー piniky
提出日時 2016-10-04 12:59:21
言語 C++11
(gcc 15.2.0 + boost 1.89.0)
コンパイル:
g++-15 -O2 -lm -std=gnu++11 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
AC  
実行時間 3 ms / 5,000 ms
コード長 846 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 909 ms
コンパイル使用メモリ 178,328 KB
実行使用メモリ 7,716 KB
最終ジャッジ日時 2026-03-13 02:27:19
合計ジャッジ時間 1,746 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge3_1
外部呼び出し有り
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 23
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include "bits/stdc++.h"

#define debug(x) cout<<#x<<": "<<x<<endl
#define rep(i,n) for (int i=0;i<(n);i++)
#define FOR(i,a,b) for (int i=(a);i<=(b);i++)
#define all(a) (a).begin(),(a).end()
using namespace std;
typedef vector<int> VI;
typedef vector<vector<int>> VVI;
typedef long long ll;


void solve() {
#ifdef _WIN32
	istream &cin = ifstream("input.txt");
#endif

	int n, sum = 0;
	cin >> n;
	VI w(n);
	VI dp(n * 100 + 1);
	rep(i, n) {
		cin >> w[i];
		sum += w[i];
	}
	dp[0] = 1;
	rep(i, n) {
		for (int j = n * 100; j >= 0; j--) {
			if (j - w[i] >= 0 && dp[j - w[i]] == 1) dp[j] = 1;

		}
	}

	if (sum % 2 == 1) cout << "impossible" << endl;
	else if (dp[sum / 2] == 1) cout << "possible" << endl;
	else cout << "impossible" << endl;
}




int main() {
	cin.tie(0);
	ios::sync_with_stdio(false);


	solve();
	system("PAUSE");
	return 0;
}
0