結果
問題 | No.451 575 |
ユーザー |
![]() |
提出日時 | 2023-05-21 01:36:42 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,423 bytes |
コンパイル時間 | 2,443 ms |
コンパイル使用メモリ | 194,680 KB |
最終ジャッジ日時 | 2025-02-13 03:54:11 |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 9 WA * 20 |
ソースコード
#include <bits/stdc++.h> using namespace std; using ll=long long; using ld=long double; ld pie=3.141592653589793; ll inf=300000000; ll mod=998244353; int main(){ ll n; cin >> n; vector<ll>b(n); ll d=1000000000000000000; for (ll i = 0; i < n; i++) { cin >> b[i]; } ll now=0; bool ok=true; ll pl=1,mn=d; if (n==1&&b[0]==1) { cout << -1 << endl; return 0; } for (ll i = 1; i < n; i+=2) { now*=-1; now+=b[i-1]-b[i]; if ((i/2)%2==0) { if (d-now<=0||2*d<-now) { ok=false; break; } pl=max(pl,-d-now); mn=min(mn,d-now); }else{ if (d-now<=0||2*d<-now) { ok=false; break; } pl=max(pl,now-d+1); mn=min(now+d-1,mn); } } if (!ok) { cout << -1 << endl; return 0;; } if (pl>mn) { cout << -1 << endl; return 0; } ll nn=pl; cout << n+1 << endl; cout << nn << endl; for (ll i = 0; i < n; i++) { if (i%2==0) { nn*=-1; nn+=b[i]; }else{ nn-=b[i]; } cout << nn << endl; } }