水面下の夢

競プロやイラストに興味があります.メインブログがここ.同人サークル「かのらぶ」のページはこっち( https://yumechi0525.amebaownd.com ).ブログアイコンはYaQ(@8_9_00)さんから.

No.146 試験監督(1)

回答

#43850 No.146 試験監督(1) - yukicoder

座れる場所が2箇所の時1,3箇所の時2,4箇所の時2,5箇所の時3...
ということで,座れる箇所はn箇所の時 ceil(n) で求められますね.ただしここでは計算を簡単に,(n + 1) // 2で求めることが可能です.
Pythonだと//はint型同士の割り算扱いになるので… ここが少し特殊ですね)

で,アルゴリズムがあっているのに,最後 10 ** 9 + 7 で割り忘れて非常に冷えました.^^;

res = 0
n = int(input())
for i in range(n):
    c, d = map(int, input().split())
    res += ((c + 1) // 2) * d
print(res % (10 ** 9 + 7))