結果
問題 | No.451 575 |
ユーザー |
|
提出日時 | 2016-12-03 00:54:37 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,677 bytes |
コンパイル時間 | 1,811 ms |
コンパイル使用メモリ | 169,752 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-16 10:49:37 |
合計ジャッジ時間 | 4,731 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 WA * 1 |
other | AC * 28 WA * 1 |
ソースコード
#include <bits/stdc++.h>using namespace std;typedef long long ll;const ll INF = 1000000000000000001;int main() {cin.tie(0);ios::sync_with_stdio(false);int n;cin >> n;vector<ll> b(n);for (int i = 0; i < n; i++) cin >> b[i];bool flag = true;for (int i = 1; i < n; i++) {if (flag) {b[i] = b[i - 1] - b[i];} else {b[i] += b[i - 1];}flag = (i / 2 % 2 == 0);}ll min1 = INF, min2 = INF;int imin1 = -1, imin2 = -1;for (int i = 0; i < n; i++) {if (i / 2 % 2 == 0) {if (min1 > b[i]) {min1 = b[i];imin1 = i + 1;}} else {if (min2 > b[i]) {min2 = b[i];imin2 = i + 1;}}}if (imin1 != 1) {vector<ll> a1(n + 1);a1[imin1] = 1;a1[0] = b[imin1 - 1] - a1[imin1];flag = true;if (a1[0] <= 0 || a1[0] >= INF) flag = false;for (int i = 0; i < n; i++) {if (i / 2 % 2 == 0) {a1[i + 1] = b[i] - a1[0];} else {a1[i + 1] = -b[i] + a1[0];}if (a1[i + 1] <= 0 || a1[i + 1] >= INF) {flag = false;break;}}if (flag) {cout << n + 1 << endl;for (int i = 0; i <= n; i++) {cout << a1[i] << endl;}return 0;}}if (imin2 != -1) {vector<ll> a2(n + 1);a2[imin2] = 1;a2[0] = -b[imin2 - 1] + a2[imin2];flag = true;if (a2[0] <= 0 || a2[0] >= INF) flag = false;for (int i = 0; i < n; i++) {if (i / 2 % 2 == 0) {a2[i + 1] = b[i] - a2[0];} else {a2[i + 1] = -b[i] + a2[0];}if (a2[i + 1] <= 0 || a2[i + 1] >= INF) {flag = false;break;}}if (flag) {cout << n + 1 << endl;for (int i = 0; i <= n; i++) {cout << a2[i] << endl;}return 0;}}cout << -1 << endl;return 0;}