๋ฐฑ์ค€ 4716 ํ’์„ 

Updated:     Updated:

Categories:

Tags: , ,

๋ฌธ์ œ

https://www.acmicpc.net/problem/4716

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2022-12-31 แ„‹แ…ฉแ„’แ…ฎ 10 33 08

ํ’€์ด

์ด ๋ฌธ์ œ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ–ˆ๋˜ ์ ์€ ํ’์„ ์ด ๋ถ€์กฑํ•œ ๊ฒฝ์šฐ๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ ํŒ€๋งˆ๋‹ค 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)

boj ์นดํ…Œ๊ณ ๋ฆฌ ๋‚ด ๋‹ค๋ฅธ ๊ธ€ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ

Leave a comment