만드는 중입니다

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

여우원숭이 줄 재배열

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

요약
순열을 연속된 부분으로 나누고, 부분마다 x를 내고 정렬에 필요한 인접 교환 횟수를 더할 때 최소 비용을 구합니다.
난이도

보통10점 중 7점

유형
동적 계획법, 세그먼트 트리, 분할 정복
정답자
아직 제출이 없습니다

문제

줄리안 왕은 여우원숭이 nn마리를 한 줄로 세웠습니다. 각 여우원숭이의 키는 11부터 nn까지의 정수이며, 키가 같은 두 여우원숭이는 없습니다.

줄리안 왕은 줄을 여러 부분으로 나누려고 합니다. 부분은 서로 겹치지 않는 연속된 구간이며, 모든 부분을 합치면 줄 전체가 됩니다. 그다음 각 부분 안에서 키가 왼쪽에서 오른쪽으로 갈수록 커지도록 여우원숭이를 배치합니다. 줄을 kk개의 부분으로 나누면 여우원숭이에게 k⋅xk \cdot x개의 조개껍데기를 지불해야 합니다.

줄을 나눈 뒤에는 같은 부분 안에서 이웃한 두 여우원숭이의 자리를 원하는 횟수만큼 맞바꿀 수 있습니다. 한 번 맞바꿀 때마다 조개껍데기 1개가 듭니다.

원하는 배열을 만드는 데 필요한 조개껍데기의 최솟값을 구하시오.

입력

첫 번째 줄에 여우원숭이의 수 nn과 부분 하나당 비용 xx가 주어집니다 (1≤n≤3000001 \le n \le 300000, 1≤x≤1091 \le x \le 10^9).

두 번째 줄에는 서로 다른 정수 nn개 h1,h2,…,hnh_1, h_2, \ldots, h_n이 주어집니다. hih_i는 여우원숭이들의 키입니다 (1≤hi≤n1 \le h_i \le n). 모든 hih_i는 서로 다르다고 보장됩니다.

출력

필요한 조개껍데기의 최솟값을 나타내는 정수 하나를 출력하시오.

예제3

  1. 예제 1

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

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

    입력
    10 10
    9 10 8 3 7 5 6 2 1 4
    
    예상 출력
    35