Edit

【pythonでABC193を解説】B - Play Snuke

問題概要

問題ページ

B - Play Snuke
B - Play Snuke

問題ページへ移動する

問題文

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

制約

  • 入力は全て整数
  • \(1 ≤ N ≤ 10^5\)
  • \(1 ≤ A_i, P_i, X_i ≤ 10^9\)

問題の考察

ACコード

import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n = int(input().rstrip('\n'))
    t = 10 ** 20
    for i in range(n):
        a, p, x = list(map(int, input().rstrip('\n').split()))
        if x > a:
            t = min(t, p)
    print(t if t != 10 ** 20 else -1)


if __name__ == '__main__':
    solve()

-Edit
-