結果

問題 No.451 575
ユーザー olphe
提出日時 2016-12-02 01:14:37
言語 C++11
(gcc 4.8.5)
結果
AC  
実行時間 117 ms
コード長 922 Byte
コンパイル時間 1,056 ms
使用メモリ 8,916 KB
最終ジャッジ日時 2019-09-02 19:36:15

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
0_sample_1.txt AC 3 ms
6,872 KB
0_sample_2.txt AC 3 ms
8,912 KB
0_sample_3.txt AC 3 ms
6,868 KB
0_sample_4.txt AC 3 ms
8,916 KB
1_rand_1.txt AC 3 ms
6,868 KB
1_rand_2.txt AC 7 ms
6,868 KB
1_rand_3.txt AC 16 ms
6,872 KB
1_rand_4.txt AC 104 ms
6,872 KB
2_tight_1.txt AC 3 ms
6,872 KB
2_tight_2.txt AC 4 ms
6,872 KB
2_tight_3.txt AC 31 ms
6,872 KB
2_tight_4.txt AC 90 ms
6,868 KB
2_tight_5.txt AC 116 ms
6,868 KB
2_tight_6.txt AC 115 ms
8,916 KB
3_tight_ng_1.txt AC 3 ms
6,872 KB
3_tight_ng_2.txt AC 7 ms
6,868 KB
3_tight_ng_3.txt AC 20 ms
6,868 KB
3_tight_ng_4.txt AC 104 ms
6,872 KB
3_tight_ng_5.txt AC 102 ms
8,916 KB
3_tight_ng_6.txt AC 70 ms
6,872 KB
4_many_1.txt AC 9 ms
6,872 KB
4_many_2.txt AC 5 ms
6,872 KB
4_many_3.txt AC 3 ms
6,868 KB
4_many_4.txt AC 117 ms
8,916 KB
4_many_5.txt AC 47 ms
6,872 KB
4_many_6.txt AC 4 ms
6,872 KB
5_ng_1.txt AC 3 ms
6,872 KB
5_ng_2.txt AC 4 ms
6,872 KB
5_ng_3.txt AC 5 ms
8,916 KB
5_ng_4.txt AC 14 ms
8,912 KB
5_ng_5.txt AC 104 ms
6,872 KB
challenge01.txt AC 3 ms
6,872 KB
system_test1.txt AC 24 ms
6,868 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