Official

C - お土産選び / Choosing Souvenirs Editorial by sounansya


for 文で各お土産を順番に見ていき、条件を満たす中で優先順位が最も高いものを順に持っていけば良いです。

最初に値段が \(\text{INF}\) 円、美味しさが \(0\) であるような架空のお土産を持っておき、そのお土産より良いお土産が見つからなかった場合の答えが -1、とすると実装が楽になります。

実装例(Python3)

n, l, r, t = map(int, input().split())
ans = -1
INF = 10**18
ans_p, ans_s = INF, -INF
for i in range(n):
    p, s = map(int, input().split())
    if not (l <= p <= r and s >= t):
        continue
    if ans_p > p or (ans_p == p and ans_s < s):
        ans = i + 1
        ans_p, ans_s = p, s
print(ans)

posted:
last update: