메뉴 건너뛰기

문제

00b62 비행기 스케줄(planing) 0  

시간메모리제출 올바른 답 비율
1초128MB
152
9
5.9%


나의 횟수나의 최근 판정시도 성공 비율
275
18.5%
비행기 스케줄(planing) 

헬렌은 아주 낡은 메트로폴리스 공항에서 일한다. 그녀는 출발 시간표를 작성하는 일을 맡고 있는데 비행기의 출발순서는 i번째 비행기는 i시간에 출발하는 것이 원칙이다. 

하지만 낡은 공항에 기술적인 문제가 발생하여 k시간만큼의 지연이 있었다. 현재 출발하기로 예정된  n개의 비행기가 있고 이 비행기들은 (k+1) ~ (k+n)시간 동안 각각 다른 시간으로 출발해야 한다. (다시 말해, 1시간에 한 대의 비행기만이 공항을 출발할 수 있다는 것을 의미한다.) 

그러나, 항공 편이 당초 예정된 순서대로 출발하는 것과 동일한 순서로 출발할 필요는 없다. 지연시간으로 인하여 출발순서가 다를 수 있다. 하지만 제한조건으로 원래 출발 예정시간보다 일찍 출발할 수 없다.

헬렌은 i번째 비행기가 원래 출발시간보다 지연되면 공항은 매 시간마다 비용을 물어야 한다. 공항이 내야하는 총 비용을 최소값을 계산해야 한다.

입력

첫 줄에는 출발해야 하는 비행기의 수 n, 출발지연 시간 k  (1 ≤ k ≤ n ≤ 70 ,000)가 주어진다.

둘째 줄에는 n개 만큼의 비행기의 매 시간 지연될 때마다 발생하는 비용이 아래와 같이 주어진다.

 c1, c2, ..., cn (1 ≤ ci ≤ 106) 여기서 ci 는 i번째 비행기가 지연될때 매 시간마다 발생하는 비용을 의미한다. 

출력

첫 줄에는 비용의 최소값을 출력한다.

예시
1입력
5 2
4 2 1 10 2
출력
20
출처
Codeforces Round #433 (Div. 2)
위로