結果

問題 No.451 575
ユーザー olphe
提出日時 2016-12-02 01:14:37
言語 C++11
(gcc 4.8.5)
結果
AC  
実行時間 119 ms
コード長 922 Byte
コンパイル時間 12,746 ms
使用メモリ 3,080 KB
最終ジャッジ日時 2019-06-20 13:39:35

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
0_sample_1.txt AC 3 ms
1,512 KB
0_sample_2.txt AC 4 ms
1,516 KB
0_sample_3.txt AC 3 ms
1,496 KB
0_sample_4.txt AC 3 ms
1,512 KB
1_rand_1.txt AC 3 ms
1,500 KB
1_rand_2.txt AC 7 ms
1,536 KB
1_rand_3.txt AC 16 ms
1,644 KB
1_rand_4.txt AC 105 ms
2,280 KB
2_tight_1.txt AC 4 ms
1,516 KB
2_tight_2.txt AC 5 ms
1,528 KB
2_tight_3.txt AC 32 ms
1,900 KB
2_tight_4.txt AC 90 ms
2,708 KB
2_tight_5.txt AC 116 ms
3,080 KB
2_tight_6.txt AC 119 ms
3,076 KB
3_tight_ng_1.txt AC 4 ms
1,500 KB
3_tight_ng_2.txt AC 7 ms
1,552 KB
3_tight_ng_3.txt AC 25 ms
1,748 KB
3_tight_ng_4.txt AC 105 ms
3,060 KB
3_tight_ng_5.txt AC 104 ms
2,284 KB
3_tight_ng_6.txt AC 70 ms
2,524 KB
4_many_1.txt AC 8 ms
1,568 KB
4_many_2.txt AC 5 ms
1,532 KB
4_many_3.txt AC 3 ms
1,512 KB
4_many_4.txt AC 116 ms
3,076 KB
4_many_5.txt AC 47 ms
2,432 KB
4_many_6.txt AC 2 ms
1,512 KB
5_ng_1.txt AC 3 ms
1,500 KB
5_ng_2.txt AC 4 ms
1,504 KB
5_ng_3.txt AC 4 ms
1,516 KB
5_ng_4.txt AC 15 ms
1,652 KB
5_ng_5.txt AC 105 ms
3,064 KB
challenge01.txt AC 2 ms
1,492 KB
system_test1.txt AC 24 ms
1,764 KB
テストケース一括ダウンロード

ソースコード

diff #
#include "iostream" 
using namespace std;

int N;
long long int num[200000];
long long int ans[200001];
long long int MIN=0;

int main() {
	cin >> N;
	for (int i = 0; i < N; i++) {
		cin >> num[i];
	}
	ans[0] = 1;
	for (int i = 1; i < N + 1; i++) {
		if (i % 2 == 1) {
			ans[i] = num[i - 1] - ans[i - 1];
		}
		else {
			ans[i] = ans[i - 1] - num[i - 1];
		}
		if (ans[i] <= 0) {
			if (((i + 1) / 2) % 2 == 0) {
				if (ans[i] - 1 < MIN)MIN = ans[i] ;
			}
			else {
				cout << "-1\n";
				return 0;
			}
		}
	}
	if (MIN < 0) {
		ans[0] -= MIN;
		ans[0]++;
	}
	if (ans[0] <= 0) {
		cout << "-1\n";
		return 0;
	}
	for (int i = 1; i < N + 1; i++) {
		if (i % 2 == 1) {
			ans[i] = num[i - 1] - ans[i - 1];
		}
		else {
			ans[i] = ans[i - 1] - num[i - 1];
		}
		if (ans[i] <= 0) {
			cout << "-1\n";
			return 0;
		}
	}
	cout << N + 1 << "\n";
	for (int i = 0; i < N + 1; i++) {
		cout << ans[i] << "\n";
	}
	return 0;
}
0