만드는 중입니다

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

최적 재정렬

면접 대비

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

요약
값이 순열로 주어질 때 기준값 x를 골라 x보다 작은 값, x, x보다 큰 값 순으로 다시 배열합니다. 각 묶음 안의 상대 순서는 유지하며, 그 결과의 역전 쌍 최소 개수를 구합니다.
난이도

보통10점 중 5점

유형
배열, 누적 합
정답자
아직 제출이 없습니다

문제

오늘 아쿠아맨은 자신의 거대한 물고기 무리를 정리하기로 했다. 그는 물고기들을 앞에 일렬로 세우고 주의 깊게 살펴보았다.

일렬로 선 물고기는 총 nn마리이다. 물고기의 가장 중요한 특성은 힘이다. 줄의 앞에서 ii번째 물고기의 힘은 aia_i이다. 이 무리는 이상적으로 구성되어 있다. 각 물고기의 힘은 1부터 nn까지의 정수이고, 두 물고기의 힘은 같지 않다. 즉, 힘의 값들은 순열을 이룬다.

줄의 무질서도는 더 센 물고기가 덜 센 물고기보다 앞에 서 있는 쌍의 개수이다. 다시 말해, i<ji < j이고 ai>aja_i > a_j를 만족하는 번호 쌍 (i,j)(i, j)의 개수가 무질서도이다.

아쿠아맨은 재정렬 명령을 한 번 내릴 수 있다. 명령에서는 1부터 nn 사이의 정수 xx를 하나 고른다. 그러면 물고기들이 새로운 줄을 이룬다. 힘이 xx보다 작은 물고기가 먼저 서고, 힘이 정확히 xx인 물고기가 그다음에 서며, 힘이 xx보다 큰 물고기가 마지막에 선다. 힘이 xx보다 작은 물고기들과 큰 물고기들은 재정렬 전의 상대적인 순서를 그대로 유지한다. 예를 들어 물고기가 {3,6,1,4,2,5}\{3, 6, 1, 4, 2, 5\} 순서로 서 있고 x=4x = 4를 고르면, 재정렬 후에는 {3,1,2,4,6,5}\{3, 1, 2, 4, 6, 5\} 순서가 된다.

아쿠아맨은 명령을 한 번 내린 뒤 줄의 무질서도가 가능한 한 작아지기를 원한다. 그가 얻을 수 있는 무질서도의 최솟값을 구하라.

입력

첫 줄에는 물고기의 수 nn이 주어진다 (1≤n≤3 000 0001 \le n \le 3\,000\,000).

둘째 줄에는 줄에 선 물고기들의 힘 a1,a2,…,ana_1, a_2, \ldots, a_n이 주어진다. 이 값들은 서로 다르며, 각각 1 이상 nn 이하이다 (1≤ai≤n1 \le a_i \le n, 모든 i≠ji \neq j에 대해 ai≠aja_i \neq a_j).

출력

재정렬 후 얻을 수 있는 무질서도의 최솟값을 한 줄에 출력한다.

예제2

  1. 예제 1

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

    입력
    3
    1 3 2
    
    예상 출력
    0