結果
| 問題 |
No.4 おもりと天秤
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2019-04-05 12:19:04 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,631 bytes |
| コンパイル時間 | 1,851 ms |
| コンパイル使用メモリ | 164,756 KB |
| 実行使用メモリ | 6,824 KB |
| 最終ジャッジ日時 | 2025-01-03 05:46:22 |
| 合計ジャッジ時間 | 4,319 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 7 WA * 7 RE * 9 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (n); ++i)
const char sp = ' ';
const char cmm = ',';
const int MOD = 1000000007;
using ll = long long;
ll mod(ll a, ll b){return (a%b+b)%b;}
ll gcd(ll a, ll b){return b?gcd(b,a%b):a;}
ll lcm(ll a, ll b){return a*b/gcd(a,b);}
void Yes(){cout << "Yes" << endl;}
void No(){cout << "No" << endl;}
void Judge(bool b){b?Yes():No();}
void YES(){cout << "YES" << endl;}
void NO(){cout << "NO" << endl;}
void JUDGE(bool b){b?YES():NO();}
ll powMod(ll b, ll e, ll m){ll r=1;while(e>0){if(e&1)r=(r%m)*(b%m)%m;b=(b%m)*(b%m)%m;e>>=1;}return r;}
double distance(ll x1, ll y1, ll x2, ll y2){return sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2));}
template<typename T>
void ppp(T n){cout << n << endl;}
template<typename T1, typename T2> ostream& operator<<(ostream& s, const pair<T1, T2>& p) {return s << "(" << p.first << ", " << p.second << ")";}
template<typename T> ostream& operator<<(ostream& s, const vector<T>& v) {
int len = v.size();
cout << '[';
for (int i = 0; i < len; ++i) {
s << v[i]; if (i < len-1) s << ", ";
}
cout << ']';
return s;
}
bool dp[101][101];
int main(){
cin.tie(0);
ios::sync_with_stdio(false);
int n;
cin >> n;
int sum = 0;
vector<int> w(n);
rep(i, n) {
cin >> w[i];
sum += w[i];
}
if(sum % 2){
ppp("impossible");
return 0;
}
for(int i = 0; i <= 100; ++i){
dp[0][i] = true;
}
for(int i = 0; i < n; ++i){
for(int j = 1; j <= 100; ++j){
dp[i+1][j] = dp[i][j] or dp[i][j-w[i]];
}
}
if(dp[n][sum/2]){
ppp("possible");
}
else{
ppp("impossible");
}
return 0;
}