C - 魔法使い高橋君
解法
(公式解説の通りにやっただけです)
a<bの魔法はリストu(upperの頭文字)に、a>=bのはリストdに入れていく。
dはaの値が小さい順に、uはbの値が大きい順にソートする。
あとは題意通りに温度を上げ下げしてmaxをとって答え。
// ARC053C
N = int(input())
u = []
d = []
for p in range(N):
a, b = map(int, input().split())
if a < b:
d.append([a,b])
else:
u.append([a,b])
d.sort(key = lambda x: x[0])
u.sort(key = lambda x: x[1], reverse = True)
t = 0
ans = 0
for x in d:
t += x[0]
ans = max(ans, t)
t -= x[1]
for x in u:
t += x[0]
ans = max(ans, t)
t -= x[1]
print(ans)
0 件のコメント:
コメントを投稿