
# 8980 택배
N,C=map(int,input().split())
M=int(input())
delivery_list=sorted([list(map(int,input().split())) for _ in range(M)],key=lambda x : x[1])
→ 문제의 조건에서 🛻은 한번 지나간 마을로 되돌아갈 수 없고, 실린박스도 도착 마을에서만 내릴 수 있다고 주어졌다.
→ 트럭은 한번 싣는 박스가 결국 일정 구간(도착 마을에 도달할 때 까지) 동안 차지하게 된다.
→ 도착마을 순서대로 정렬하여 공간을 긴 시간 차지하는 박스가 아닌 빨리 내릴 수 있는 박스를 실을 수 있다.
| 보내는 마을 | 받는 마을 | 박스 수 | 
|---|---|---|
| 1 | 4 | 30 | 
| 1 | 2 | 20 | 
인 경우를 가정해보자. 만약에 도착하는 마을을 기준으로 오름차순 정렬을 하지 않게 되면, 4번 마을까지 가는 짐을 먼저 싣게 되고, 2번 마을까지 가는 심을 실었을 때랑 비교해서 3번 마을에서 짐을 싣는것이 불가능해진다!!

i) capacity 초기화, 이때 마을갯수 만큼 하루하루 가용한 트럭의 용량을 나타내는 것이다.
ii) [1,2,10]인 케이스, 2까지 배달하는 것이기 때문에 1번마을을 지날때 동안만 트럭에 짐칸을 차지하는 것이다. 즉 1번마을의 트럭 용량을 10 제거한다.
...
여기서 주의할점은 truck capacity의 현재 남은 용량이다. 시작마을부터 마지막 배송하는 마을까지의 tuck capcaity를 확인하여 만약에 현재 짐을 실으려고 하는 무게보다 더 가벼우면 capacity까지의 무게로 트럭에 짐을 실을 수 있는 것이다.
truck_capacity=[C]*N
result=0
for start,end,amount in delivery_list:
    current_min=C
    for i in range(start,end):
        if current_min>min(truck_capacity[i],amount):
            current_min=min(truck_capacity[i],amount)
    for i in range(start,end):
        truck_capacity[i]-=current_min
    result+=current_min
print(result)