만드는 중입니다

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

정렬에 필요한 이동 횟수

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

요약
순열이 주어질 때, 인접한 두 원소 교환과 첫 원소와 마지막 원소 교환(한 번만 가능)으로 정렬하는 최소 횟수를 구합니다.
난이도

보통10점 중 6점

유형
배열, 수학, 구현
정답자
아직 제출이 없습니다

문제

순열이 주어진다.

이동은 다음 중 하나이다.

  1. 인접한 두 원소를 서로 바꾼다.
  2. 첫 번째 원소와 마지막 원소를 서로 바꾼다. 이 이동은 최대 한 번만 사용할 수 있다.

주어진 순열을 정렬하는 데 필요한 이동 횟수의 최솟값은 얼마인가?

입력

첫째 줄에 순열의 길이인 정수 nn (1≤n≤3⋅1051 \leq n \leq 3 \cdot 10^5)이 주어진다.

둘째 줄에 순열 자체인 정수 aia_i (1≤ai≤n1 \leq a_i \leq n) nn개가 주어진다.

출력

정렬에 필요한 최소 이동 횟수를 한 줄에 출력한다.

예제5

  1. 예제 1

    입력
    1
    1
    
    예상 출력
    0
    
  2. 예제 2

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

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

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

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