結果
問題 | No.1017 Reiwa Sequence |
ユーザー |
![]() |
提出日時 | 2020-04-24 13:48:30 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 563 ms / 2,000 ms |
コード長 | 1,664 bytes |
コンパイル時間 | 1,701 ms |
コンパイル使用メモリ | 175,640 KB |
実行使用メモリ | 36,352 KB |
最終ジャッジ日時 | 2024-07-03 09:02:28 |
合計ジャッジ時間 | 42,247 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 50 |
ソースコード
#include <bits/stdc++.h>#define rep(i, n) for (lli i = 0; i < (n); i++)#define rrep(i, n) for (lli i = (n)-1; i >= 0; i--)using namespace std;using lli = long long int;void YESNO(bool), YesNo(bool);template <class T1, class T2>bool chmin(T1 &l, const T2 &r);template <class T1, class T2>bool chmax(T1 &l, const T2 &r);int main(){int n;vector<lli> a(22);cin >> n;lli N = n;n = min(n, 22);rep(i, min(n, 22)) cin >> a[i];map<lli, lli> s;rep(i, 1 << n){lli ret = 0;lli sum = 0;rep(j, n){if ((i >> j) & 1){sum += a[j];}}if (sum){if (s.count(sum)){lli mask = i & s[sum];cout << "Yes" << endl;rep(k, N){if (k <= 22){if ((mask >> k) & 1){cout << 0;}else if ((i >> k) & 1){cout << a[k];}else if ((s[sum] >> k) & 1){cout << -a[k];}else{cout << 0;}}else{cout << 0;}cout << " ";}return 0;}s[sum] = i;}}cout << "No" << endl;}// -- libvoid YESNO(bool b) { cout << (b ? "YES" : "NO") << endl; }void YesNo(bool b) { cout << (b ? "Yes" : "No") << endl; }template <class T1, class T2>bool chmin(T1 &l, const T2 &r){return (l > r) ? (l = r, true) : false;}template <class T1, class T2>bool chmax(T1 &l, const T2 &r){return (l < r) ? (l = r, true) : false;}