AtCoder ABC 193 B – Play Snuke Python解説

スポンサーリンク

Play Snuke

高橋くんは人気ゲーム機「スヌケマシン」を買おうとしています。
スヌケマシンを販売している店は店 1,2,…,N の N 軒あり、店 i は高橋くんの現在地から徒歩 Ai分、スヌケマシンの販売価格は Pi円、現在のスヌケマシンの在庫は Xi台です。
高橋くんは今から徒歩でスヌケマシンを販売している店に向かい、店に着いたときにスヌケマシンの在庫があればスヌケマシンを買います。
しかし、スヌケマシンは人気商品なので、今から 0.5,1.5,2.5,… 分後に全ての店でスヌケマシンの在庫が (存在するなら) 1 台減ります。
高橋くんがスヌケマシンを買うことができるか判定し、できる場合は買うのに必要な最小の金額を求めてください。

AtCoder Beginner Contest 「Play Snuke」

店に着いたときにスヌケマシンの在庫は、(元の在庫数X – 徒歩A)台あるので、在庫があれば、あとはスヌケマシンが最小値を更新するかを確認していきます。

n = int(input())

price = 1000000000
flag = False

for _ in range(n):
    a, p, x = map(int, input().split())
    if x - a > 0:
        price = min(price, p)
        flag = True
        
print(price if flag else -1)

priceには入力から与えられる上限の10 ^ 9を入れ、スヌケマシンが買えるかどうかはflagで管理します。あとは、x – a > 0でスヌケマシンの在庫数を調べ、在庫があれば、price = min(price, p)でスヌケマシンの最小値を比べます。最後にスヌケマシンが買えていればpriceを、買えていなければ-1を出力して完了です。

AtCoderB問題

Posted by cheese