読者です 読者をやめる 読者になる 読者になる

水面下の夢

競プロやイラストに興味があります.メインブログがここ.ソシャゲの話はこっち(http://ameblo.jp/0n0-yumechi/).ブログアイコンはYaQ(@8_9_00)さんから.

No.178 美しいWhitespace (1)

Python yukicoder 競技プログラミング

回答

#44627 No.178 美しいWhitespace (1) - yukicoder

結構実装がめんどくさかった記憶.
まず,入力データの受取と同時に最大のスペースのものを求める.
で,入力データがすべて奇数,または偶数であることを確認.どれか一つでも違っていたら絶対に合わないので,-1.
すべて奇数,偶数ならあとは最大値に合わせてひたすら足しあわせる.

N = int(input())
li = []
mw = 0
for i in range(N):
    a, b = map(int, input().split())
    w = a + b * 4
    mw = max(mw, w)
    li.append(w)

# imcalculate check
eli = [i for i in li if i % 2 == 0]
if len(eli) != N and len(eli) != 0:
    print(-1)
    exit(0)

res = 0
for elem in li:
    res += (mw) - elem
print(res // 2)