結果
問題 | No.1017 Reiwa Sequence |
ユーザー |
|
提出日時 | 2024-06-14 21:34:04 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,960 bytes |
コンパイル時間 | 2,399 ms |
コンパイル使用メモリ | 142,208 KB |
実行使用メモリ | 13,756 KB |
最終ジャッジ日時 | 2024-06-14 21:34:24 |
合計ジャッジ時間 | 19,123 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 15 TLE * 1 -- * 34 |
ソースコード
#include <algorithm>#include <cassert>#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <iostream>#include <tuple>#include <vector>#include <map>#include <set>#include <queue>#include <ranges>#include <iomanip>using namespace std;using ll = long long;auto range(int n) { return views::iota(0, n); }template<class T, class U> ostream& operator<<(ostream& os, const pair<T, U>& p){ return os << "{" << p.first << ", " << p.second << "}"; }template<typename T> ostream& operator<<(ostream& os, const vector<T>& obj) { os << "{"; for (const auto& e : obj) os << e << ", "; return os << "}";}template<typename T> ostream& operator<<(ostream& os, const set<T>& obj) { os << "set{"; for (const auto& e : obj) os << e << ", "; return os << "}";}template<typename T, typename U> ostream& operator<<(ostream& os, const map<T, U>& obj) { os << "map{"; for (const auto& e : obj) os << e << ", ";return os << "}"; }#ifdef ONLINE_JUDGE#define dump(expr) ;#else#define dump(expr) { cerr << "\033[33m#L" << __LINE__ << ": " << expr << "\033[39m" << endl; }#endifint depthmax;vector<int> vs;bool good;vector<int> ans;void dfs(int j, int tot, char p) {if (j == depthmax) {if (tot == 0 && p) good = true;return;}ans[j] = 0;dfs(j + 1, tot, p);if (good) return;ans[j] = vs[j];dfs(j + 1, tot + vs[j], 1);if (good) return;ans[j] = -vs[j];dfs(j + 1, tot - vs[j], 1);if (good) return;}void solve() {int n; cin >> n;vs.resize(n);for (int i : range(n)) cin >> vs[i];depthmax = min(n, 19);good = false;ans.resize(depthmax);dfs(0, 0, 0);if (good) {cout << "Yes" << endl;for (int j : range(depthmax)) {if (j) cout << " ";cout << ans[j];}for (int j : views::iota(depthmax, n)) cout << " 0";cout << endl;} else {cout << "No" << endl;}}int main() {cout << fixed << setprecision(12);solve();}