청소

아직 제출이 없습니다시간 제한2초메모리 제한1024 MB

문제

준석이는 청소 업체에 다니고 있다. 준석이가 청소할 장소는 11번부터 NN번까지 차례로 번호가 붙은 일렬의 NN개의 구역으로 나누어져 있다. ii번 구역은 i1i-1번과 i+1i+1번 구역과 인접해 있어, 두 인접한 구역 사이를 이동하려면 11만큼 걸어야 한다.

각 구역에는 우선순위가 있다. ii번 구역의 우선순위 A_iA\_i11이상 NN이하의 정수로 이 값이 클수록 우선순위가 높다. 임의의 두 구역의 우선순위는 항상 다르다.

준석이는 오늘 이 구역 중 KK개의 구역을 먼저 청소하려고 한다. 단, 준석이가 청소하는 KK개의 구역은 반드시 연속해야 한다. 또한 청소할 때 선택한 구역들 내에서는 우선순위가 높은 구역부터 낮은 구역 순서대로 이동하며 청소해야 한다.

두 구역이 멀리 떨어져 있으면 이동하는 시간이 오래 걸리기 때문에, 준석이는 이동 거리의 합이 최소화되도록 연속한 KK개의 구역을 선택하려고 한다. 이동 거리가 최소가 되도록 구역을 선택했을 때 총 이동 거리를 출력한다.

입력

첫째 줄에 청소할 구역의 길이 NN과 오늘 청소할 구역의 개수 KK가 공백으로 구분되어 주어진다.

둘째 줄에 각 구역의 우선순위 A_1,A_2,,A_NA\_1,A\_2,\cdots ,A\_N이 공백으로 구분되어 주어진다.

출력

KK개의 구역을 선택했을 때 가능한 총 이동 거리 중 최솟값을 출력한다.

제한

  • 1KN500,0001\leq K\leq N\leq 500\\, 000
  • 1A_iN1\leq A\_i\leq N
  • iji\neq j 이면 A_iA_jA\_i\neq A\_j이다.