prettify

2016年5月20日金曜日

"魔法使い高橋君" AtCoder Regular Contest 053 C

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 件のコメント:

コメントを投稿