만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

청소

면접 대비

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

요약
연속된 K개 구역을 우선순위가 높은 순서대로 방문할 때 이동 거리 합의 최솟값을 구합니다.
난이도

보통10점 중 6점

유형
슬라이딩 윈도우, 세그먼트 트리, 배열
정답자
아직 제출이 없습니다

문제

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

각 구역에는 우선순위가 있다. i번 구역의 우선순위 A_iA\_i는 1 이상 N 이하의 정수이며, 이 값이 클수록 우선순위가 높다. 임의의 두 구역의 우선순위는 항상 다르다.

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

두 구역이 멀리 떨어져 있으면 이동하는 데 시간이 오래 걸린다. 그래서 준석이는 이동 거리의 합이 최소가 되도록 연속한 K개의 구역을 고르려고 한다. 이동 거리가 최소가 되도록 구역을 골랐을 때의 총 이동 거리를 출력한다.

입력

첫째 줄에 청소할 구역의 길이 N과 오늘 청소할 구역의 개수 K가 공백으로 구분되어 주어진다. 둘째 줄에는 각 구역의 우선순위 A_1,A_2,⋯ ,A_NA\_1,A\_2,\cdots ,A\_N이 공백으로 구분되어 주어진다.

출력

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

제한

1≤K≤N≤500 0001\leq K\leq N\leq 500\, 000, 1≤A_i≤N1\leq A\_i\leq N이고, i≠ji\neq j이면 A_i≠A_jA\_i\neq A\_j이다.

예제3

  1. 예제 1

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

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

    입력
    3 1
    1 2 3
    
    예상 출력
    0