結果
問題 | No.451 575 |
ユーザー |
![]() |
提出日時 | 2016-12-02 01:11:01 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,353 bytes |
コンパイル時間 | 644 ms |
コンパイル使用メモリ | 84,084 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-12-16 09:15:28 |
合計ジャッジ時間 | 6,023 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 WA * 1 |
other | AC * 16 WA * 13 |
ソースコード
#include <algorithm>#include <cstdio>#include <cstdlib>#include <cctype>#include <cmath>#include <iostream>#include <queue>#include <list>#include <stack>#include <map>#include <numeric>#include <set>#include <sstream>#include <string>#include <vector>using namespace std;#define REP(i,a,n) for(int i=(a); i<(int)(n); i++)#define rep(i,n) REP(i,0,n)#define FOR(it,c) for(__typeof((c).begin()) it=(c).begin(); it!=(c).end(); ++it)#define ALLOF(c) (c).begin(), (c).end()typedef long long ll;int main(){ios::sync_with_stdio(false);int n;cin >> n;vector<ll> v;rep(i,n){ll a;cin >> a;v.push_back(a);}vector<ll> ret(n+1,0);ret[n] = 1;ll mn = ret[n], mx = ret[n];for(int i=n-1; i>=0; i--){if(i%2==0){ret[i] = v[i] - ret[i+1];}else{ret[i] = v[i] + ret[i+1];}mn = min(mn, ret[i]);mx = max(mx, ret[i]);}if(mn <= 0){ret[n] = -mn + 2;mn = ret[n];mx = ret[n];for(int i=n-1; i>=0; i--){if(i%2==0){ret[i] = v[i] - ret[i+1];}else{ret[i] = v[i] + ret[i+1];}mn = min(mn, ret[i]);mx = max(mx, ret[i]);}}if(mx > 1000000000000000000LL){cout << -1 << endl;}else{cout << n+1 << endl;rep(i,ret.size()){cout << ret[i] << endl;}}return 0;}