아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

산악 트레킹 코스

시간 제한2초메모리 제한64 MB

요약
원형 발판 위에 최대 k개의 1m 블록을 쌓아 오르내림 높이 합의 감소량을 최대로 합니다.
난이도

어려움10점 중 8점

유형
그리디, 힙, 유니온 파인드
정답자
아직 제출이 없습니다

문제

알마티 근교에 출발점과 도착점이 같은 순환형 산악 자전거 트레킹 코스를 만들었다. 코스는 폭이 모두 같은 nn개의 계단으로 나타낸다. ii번째 계단은 수평이고 해발 aia_i미터에 있다. 이웃한 두 계단의 높이는 같아도 된다. 코스의 난이도는 한 바퀴를 도는 동안 오르내린 높이의 합이다.

난이도=∣a1−a2∣+∣a2−a3∣+⋯+∣an−1−an∣+∣an−a1∣\text{난이도} = |a_1 - a_2| + |a_2 - a_3| + \cdots + |a_{n-1} - a_n| + |a_n - a_1|

처음 만든 코스는 관광객에게 너무 어려웠다. 난이도를 낮추려고 블록 kk개를 쓸 수 있다. 블록의 폭은 계단의 폭과 같고 높이는 1미터이다. 블록은 계단 위에 놓을 수도 있고 다른 블록 위에 놓을 수도 있으며, 전부 쓰지 않아도 된다.

난이도를 줄일 수 있는 최댓값을 구하시오.

입력

첫째 줄에 계단의 개수 nn과 블록의 개수 kk가 주어진다. (2≤n≤1062 \le n \le 10^6, 1≤k≤1091 \le k \le 10^9)

둘째 줄에 각 계단의 높이 a1,a2,…,ana_1, a_2, \dots, a_n이 주어진다. (0≤ai≤1090 \le a_i \le 10^9)

출력

난이도를 줄일 수 있는 최댓값을 한 줄에 출력한다.

힌트

첫 번째 예제에서 코스의 난이도는 6이다. 높이 1인 내리막이 세 번 있고, 마지막 계단에서 첫 계단으로 돌아오는 높이 3인 오르막이 한 번 있다. 세 번째 계단에 블록 한 개를 놓고 마지막 계단에 블록 두 개를 놓으면 난이도가 4만큼 줄어든다. 블록 다섯 개를 모두 놓아도 답은 같고, 이보다 더 줄일 수는 없다.

예제3

  1. 예제 1

    입력
    4 5
    4 3 2 1
    
    예상 출력
    4
    
  2. 예제 2

    입력
    3 2
    1 2 1
    
    예상 출력
    2
    
  3. 예제 3

    입력
    7 1000
    4 3 3 2 3 2 1
    
    예상 출력
    8