結果
問題 | No.4 おもりと天秤 |
ユーザー |
![]() |
提出日時 | 2017-07-26 13:17:17 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 37 ms / 5,000 ms |
コード長 | 461 bytes |
コンパイル時間 | 2,186 ms |
コンパイル使用メモリ | 195,972 KB |
最終ジャッジ日時 | 2025-01-05 01:51:46 |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 23 |
ソースコード
#include <bits/stdc++.h> using namespace std; int main() { int N, sum = 0; cin >> N; vector<int> W(N); for (int i = 0; i < N; i++) { cin >> W[i]; sum += W[i]; } if (sum & 1) { puts("impossible"); return 0; } vector<bool> dp(sum / 2 + 1); dp[0] = true; for (int i = 0; i < N; i++) { for (int j = sum / 2 - W[i]; j >= 0; j--) { if (dp[j]) { dp[j + W[i]] = true; } } } puts(dp[sum / 2] ? "possible" : "impossible"); return 0; }