結果

問題 No.451 575
ユーザー is_eri23is_eri23
提出日時 2016-12-17 01:54:17
言語 Python2
(2.7.18)
結果
AC  
実行時間 281 ms / 2,000 ms
コード長 1,264 bytes
コンパイル時間 492 ms
コンパイル使用メモリ 7,040 KB
実行使用メモリ 13,696 KB
最終ジャッジ日時 2024-12-17 13:23:44
合計ジャッジ時間 5,520 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 29
権限があれば一括ダウンロードができます

ソースコード

diff #

from Queue import * # Queue, LifoQueue, PriorityQueue
from bisect import * #bisect, insort
from collections import * #deque, Counter,OrderedDict,defaultdict
#set([]) 
import math
import copy
import itertools
import string
import sys
myread = lambda : map(int,raw_input().split())
def solver():
    N = int(raw_input())
    b = [int(raw_input()) for i in xrange(N)]
    cur = 0
    lu = [1,10**18]
    for i in xrange(N):
        if i % 4 == 0:
            cur = b[i] - cur
            lu[1] = min(cur - 1, lu[1])
            lu[0] = max(cur - 10**18, lu[0])
        elif i % 4 == 1:
            cur = cur - b[i]
            lu[1] = min(cur - 1, lu[1])
            lu[0] = max(cur - 10**18, lu[0])
        elif i % 4 == 2:
            cur = b[i] - cur
            lu[1] = min(10**18 - cur, lu[1])
            lu[0] = max(1 - cur, lu[0])
        else:
            cur = cur - b[i]
            lu[1] = min(10**18 - cur, lu[1])
            lu[0] = max(1 - cur, lu[0])
    if lu[0] > lu[1]:
        print -1
        return
    a = [lu[0]]
    for i in xrange(N):
        if i % 2 == 0:
            a.append(b[i] - a[-1])
        else:
            a.append(a[-1] - b[i])
    print len(a)
    for x in a:
        print x
    
if __name__ == "__main__":
    solver()
    
0