結果

問題 No.451 575
ユーザー rpy3cpp
提出日時 2017-04-13 03:06:07
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 456 ms / 2,000 ms
コード長 738 bytes
コンパイル時間 325 ms
コンパイル使用メモリ 12,672 KB
実行使用メモリ 16,384 KB
最終ジャッジ日時 2024-07-18 10:29:45
合計ジャッジ時間 8,188 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 29
権限があれば一括ダウンロードができます

ソースコード

diff #

n = int(input())
As = []
a = 0
for i in range(n):
    b = int(input())
    a = [1, -1][i % 2] * (b - a)
    As.append(a)
lower = 1
upper = 10**18
for i, a in enumerate(As):
    if i % 4 < 2:
        # negative ai = x - a1   -> 1 <= x - a1 <= 10**18
        # x - 10**18 <= a1 <= x - 1
        lower = max(lower, a - 10**18)
        upper = min(upper, a - 1)
    else:
        # positive ai = x + ai  ->  1 <= x + ai <= 10**18
        # 1 - x <= ai <= 10**18 - x
        lower = max(lower, 1 - a)
        upper = min(upper, 10**18 - a)
if lower > upper:
    print(-1)
else:
    print(n + 1)
    a1 = lower
    print(a1)
    for i, a in enumerate(As):
        if i % 4 < 2:
            print(a - a1)
        else:
            print(a + a1)
0