๋ฐฑ์ค 4716 ํ์
Categories: boj
๋ฌธ์
https://www.acmicpc.net/problem/4716
ํ์ด
์ด ๋ฌธ์ ์์ ๊ฐ์ฅ ์ค์ํ๋ ์ ์ ํ์ ์ด ๋ถ์กฑํ ๊ฒฝ์ฐ๊ฐ ์๋ค๋ ๊ฒ์ด๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๊ฐ ํ๋ง๋ค A๋๋ B์์ ํ์ ์ ๋ฌด์กฐ๊ฑด ํ๋์ฉ ๊ฐ์ ธ๊ฐ ์ ์๋ค. ๊ฐ ํ๋ง๋ค ๋ถ์กฑํ ๊ฒฝ์ฐ ์์ด ๋ชจ๋ ๊ฐ์ ธ๊ฐ ์ ์๊ธฐ ๋๋ฌธ์, ๊ฑฐ๋ฆฌ์ฐจ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ์ญ์ผ๋ก ์ ๋ ฌํด์ผ ํ๋ค. ํ์ ์ํ ํ๋ฉด์ ๋ง์ฝ ๋์ด์ ํ์ ์ ๊ฐ์ ธ์ฌ ์ ์๋ ๋ฐฉ์ด๋ผ๋ฉด ๋ค๋ฅธ ๋ฐฉ์์ ๊ฐ์ ธ์์ผ ํ๋ค.
while True:
n,a,b = list(map(int,input().split()))
if n == 0 and a == 0 and b == 0:
break
arr = []
for i in range(n):
arr.append(list(map(int,input().split())))
arr.sort(key = lambda x : abs(x[1]-x[2]),reverse= True)
ans = 0
temp = []
for i in range(n):
k,da,db = arr[i]
x = 0
if da <= db:
x = min(k,a)
ans += da*x
ans += db*(k-x)
a -= x; b -= (k-x)
elif da > db:
x = min(k,b)
ans += da*(k-x)
ans += db*x
a -= (k-x); b -= x
else:
temp.append([k,da,db])
print(ans)
Leave a comment