백준/Greedy

[백준] 8980번: 택배(다시)

ydin 2022. 2. 10. 12:15

-문제: https://www.acmicpc.net/problem/8980

어려운 문제. 아직 풀이 이해가 안가서 나중에 다시 봐야할 것 같다

 

-정답풀이:

n,c=map(int,input().split())
m=int(input())
nums=[]
temps=[c]*n

for _ in range(m):
    nums.append(list(map(int,input().split())))
    
nums=sorted(nums,key=lambda x: x[1]) #도착하는 순서대로 정렬

ans=0
for i in range(len(nums)):
    minNum=c+1
    for j in range(nums[i][0],nums[i][1]): 
        if temps[j]<minNum : 
            minNum=temps[j]
    t=min(minNum,nums[i][2]) 
    ans+=t
    for j in range(nums[i][0],nums[i][1]):
        temps[j]-=t
print(ans)