問題概要
問題ページ
-
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()