結果

問題 No.451 575
ユーザー _____TAB__________TAB_____
提出日時 2016-12-02 12:51:21
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 476 ms / 2,000 ms
コード長 812 bytes
コンパイル時間 370 ms
コンパイル使用メモリ 12,800 KB
実行使用メモリ 20,004 KB
最終ジャッジ日時 2024-12-16 11:00:24
合計ジャッジ時間 7,584 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 29
権限があれば一括ダウンロードができます

ソースコード

diff #

n  = int(input())
b = []
f = 0
a_01 = []
a_23 = [1]
m_01 = 10**19
m_23 = 1

for i in range(n):
	b.append(int(input()))
	if f <= 1:
		if f == 0:
			if b[i] == 1:
				print(-1)
				exit()
			ai = b[i] - a_23[-1]
		else:
			ai = a_01[-1] - b[i]
		a_01.append(ai)
		m_01 = min(m_01, ai)
	else:
		if f == 2:
			ai = b[i] - a_01[-1]
			if b[i] == 1:
				print(-1)
				exit()
		else:
			ai = a_23[-1] - b[i]
		a_23.append(ai)
		m_23 = min(m_23, ai)
	f = (f + 1) % 4

#print(a_01)
#print(a_23)
#print(m_01,m_23)
if m_23 + m_01 <= 1:
	print(-1)
	exit()
else:
	f = 3
	a_01.reverse()
	a_23.reverse()
	print(n+1)
	if m_01 > 0 and m_23 > 0:
		m = 0
	elif m_01 < m_23:
		m = -m_01 + 1
	else:
		m = m_23 - 1

	for i in range(n + 1):
		if f <= 1:
			a = a_01.pop() + m
		else:
			a = a_23.pop() - m
		f = (f + 1) % 4
		print(a)
0