AtCoder ABC 112 B – Time Limit Exceeded Python解説

スポンサーリンク

Time Limit Exceeded

外出している X さんは、ABC に参加するためにスマートウォッチで最適な帰宅経路を調べることにしました。
スマートウォッチであるあなたは、N 個の帰宅経路を見つけました。
X さんが i 番目の経路を使う場合、コスト ci かけて時間 ti で帰宅できます。

時間 T 以内に帰宅できる経路のうち、コストが最小となる経路のコストを求めてください。

AtCoder Beginner Contest 「Time Limit Exceeded」

与えられる帰宅経路が時間T以内かどうか、できなければTLEを出力。
時間T以内に帰宅できるのなら、コストが最小の経路を求める問題です。

N, T = map(int, input().split())

cost = 1001
flag = False

for _ in range(N):
    c, t = map(int, input().split())
    if t <= T:
        flag = True
        cost = min(cost, c)
    
        
print(cost if flag else "TLE")

まず、時間T以内に帰宅できる経路があるのかチェックしたいのでflagを使うことにしました。
for文の中でコストと帰宅経路を受け取り、時間T以内だったらflagをTrueにし、最小コストになるかどうかmin関数で比較しています。

最後に時間T以内に帰宅できる経路があれば最小コストを、なければTLEを出力して完了です。