結果
問題 |
No.4 おもりと天秤
|
ユーザー |
![]() |
提出日時 | 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; }