結果
| 問題 |
No.4 おもりと天秤
|
| ユーザー |
A63635985
|
| 提出日時 | 2018-03-03 10:57:34 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 3 ms / 5,000 ms |
| コード長 | 858 bytes |
| コンパイル時間 | 551 ms |
| コンパイル使用メモリ | 55,972 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-06-26 10:30:08 |
| 合計ジャッジ時間 | 1,355 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 23 |
ソースコード
#include <iostream>
using namespace std;
int main(){
int N,w[100],sum=0;
cin >> N;
for(int i=0 ; i<N ; i++ ){
cin >> w[i];
sum+=w[i];
}
if(sum%2){
cout<<"impossible"<<endl;
return 0;
}
bool dp[101][10000];
for(int i=0 ; i<=100 ; i++ )
dp[i][0]=1;
for(int i=1 ; i<=N ; i++ ){
// cout <<endl<<w[i-1] << endl;
for(int j=1 ; j<sum ; j++ ){
if(w[i-1]>j)
dp[i][j]=dp[i-1][j];
else
dp[i][j]=dp[i-1][j-w[i-1]]|dp[i-1][j];
}
}
if(dp[N][sum/2])
cout<<"possible"<<endl;
else cout<<"impossible"<<endl;
return 0;
}
A63635985