結果
問題 |
No.1017 Reiwa Sequence
|
ユーザー |
![]() |
提出日時 | 2020-04-04 16:14:15 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 285 ms / 2,000 ms |
コード長 | 936 bytes |
コンパイル時間 | 1,158 ms |
コンパイル使用メモリ | 72,396 KB |
最終ジャッジ日時 | 2025-01-09 14:03:28 |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 50 |
ソースコード
#include <iostream> #include <vector> using namespace std; int a[150010]; vector<int> v[3340000]; int main(){ int i,j,n,m; cin >> n; for(i=0;i<n;i++){ cin >> a[i]; } m = n; n = min(n,22); int val = -1; for(i=0;i<(1<<n);i++){ int res = 0; for(j=0;j<n;j++){ if(i & (1<<j)){ res += a[j]; } } int s = v[res].size(); v[res].push_back(i); if(s==1){ val = res; break; } } if(val==-1){ cout << "No" << endl; return 0; } cout << "Yes" << endl; for(i=0;i<m;i++){ if(i<n){ int s = v[val][0]&(1<<i),t = v[val][1]&(1<<i); if(s && !t) cout << a[i] << " "; else if(!s && t) cout << -a[i] << " "; else cout << 0 << " "; }else{ cout << 0 << " "; } } cout << endl; }