AtCoder ABC 189 B – Python解説

スポンサーリンク

AtCoder ABC 189 B

量と度数から、高橋君が摂取した量を求めます。摂取量がXmlを超えたら、flagをTrueにして何杯目かを答え、飲み終えた場合は-1を出力していきます。摂取量の求め方に注意を。

n, x = map(int, input().split())

flag = False
a = 0

for i in range(n):
    v, p = map(int, input().split())
    a += v * p
    if a > x * 100:
        flag = True
        result = i + 1
        break
        
print(result if flag else -1)

摂取量の求め方で、量*度数 / 100と計算すると、浮動小数点になり、おそらく不正解になってしまいます。ですので、上記のコードでは、量*度数を100で割るかわりに、xに100を掛けることで浮動小数点を回避しています。