結果
問題 | No.451 575 |
ユーザー | is_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 |
ソースコード
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()