結果
| 問題 |
No.4 おもりと天秤
|
| コンテスト | |
| ユーザー |
_hokekyo1210
|
| 提出日時 | 2015-11-14 11:17:51 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 4 ms / 5,000 ms |
| コード長 | 1,011 bytes |
| コンパイル時間 | 708 ms |
| コンパイル使用メモリ | 76,508 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-06-26 09:20:50 |
| 合計ジャッジ時間 | 1,603 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 23 |
ソースコード
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <math.h>
#include <vector>
#include <queue>
#include <algorithm>
#include <sstream>
#include <string>
#include <map>
using namespace std;
#define FOR(I,N) for(int I = 0; I < (int)(N); I++)
#define FIN(V) cout<<V<<endl
#define pb push_back
#define INF (1 << 30)
typedef pair<int, int> P;
string sValueOf(int v){stringstream ss;ss<<v;return ss.str();}
int parseInt(string v){int i;stringstream ss(v);ss>>i;return i;}
void fast_io() {cin.tie(0); ios::sync_with_stdio(false);}
int n;
int w[101];
bool ans = false;
bool memo[101][10001] = {{0}};
void saiki(int at,int x){
if(ans)return;
if(memo[at][x])return;
memo[at][x] = true;
if(at==n){
int y = 0;
int s = 0;
FOR(i,at){
s+=w[i];
}
y = s-x;
///cout<<x<<" "<<y<<endl;
if(x==y)ans = true;
return;
}
saiki(at+1,x);
saiki(at+1,x+w[at]);
return;
}
int main(){
int i,j;
cin>>n;
FOR(i,n)cin>>w[i];
saiki(0,0);
cout<<(ans?"possible":"impossible")<<endl;
return 0;
}
_hokekyo1210