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

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

소들의 단체 사진

시간 제한1초메모리 제한128 MB

요약
1부터 N까지의 순열이 주어질 때, 어떤 소 s에서 시작하는 1..N의 회전 수열로 만들기 위해 필요한 인접 교환의 최솟값을 모든 s에 대해 구한다.
난이도

보통10점 중 7점

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

문제

농부 존은 자신의 소 NN마리(1≤N≤100,0001 \le N \le 100{,}000)를 한 줄로 세워 단체 사진을 찍으려고 한다. 소들에게는 11부터 NN까지 번호가 붙어 있다.

소들은 처음에 임의의 순서로 한 줄로 서며, 왼쪽에서 ii번째 자리에는 번호가 cic_i인 소가 서 있다(1≤ci≤N1 \le c_i \le N). NN마리의 소는 모두 서로 다른 번호를 가지므로 c1,c2,…,cNc_1, c_2, \dots, c_N은 1…N1 \dots N의 순열이다.

존은 사진이 보기 좋으려면 모든 소 ii의 바로 오른쪽에 소 i+1i+1이 서야 하고(1≤i≤N−11 \le i \le N-1), 소 NN의 바로 오른쪽에는 소 11이 서야 한다고 생각한다. 즉, 줄을 왼쪽에서 오른쪽으로 읽었을 때 어떤 시작 소 ss에 대해 s, s+1, …, N, 1, 2, …, s−1s,\ s+1,\ \dots,\ N,\ 1,\ 2,\ \dots,\ s-1 순서가 되어야 한다. 맨 왼쪽 소의 왼쪽에는 아무 소도 없으므로 맨 왼쪽 소에는 제약이 없다. 이런 줄을 올바른 배치라고 하자.

소들이 사진 촬영 후의 저녁을 얼른 먹고 싶어 하므로, 존은 사진을 최대한 빨리 찍으려 한다. 소들은 지시를 잘 따르지 못해서, 존은 11분에 한 번씩 서로 인접한 두 소를 골라 자리를 맞바꿀 수 있다. 올바른 배치를 만들기 위해 필요한 최소 시간(분)을 구하여라.

예를 들어 55마리의 소가 처음에 3 5 4 2 13\ 5\ 4\ 2\ 1 순서로 서 있다고 하자. 먼저 55와 44를 맞바꾸면 3 4 5 2 13\ 4\ 5\ 2\ 1이 되고, 다시 맨 오른쪽의 22와 11을 맞바꾸면 3 4 5 1 23\ 4\ 5\ 1\ 2가 되어 올바른 배치가 된다. 이때 필요한 시간은 22분이다.

입력

  • 첫째 줄: 정수 NN.
  • 둘째 줄부터 N+1N+1번째 줄까지: i+1i+1번째 줄에는 왼쪽에서 ii번째 자리에 선 소의 번호 cic_i가 주어진다.

출력

첫째 줄에 올바른 배치를 만들기 위해 농부 존에게 필요한 최소 시간(분)을 출력한다.

예제2

  1. 예제 1

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

    입력
    1
    1
    
    예상 출력
    0