줄을 벗어난 소

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

요약
정렬된 줄에서 소 한 마리가 자리를 옮긴 배열이 주어질 때, 임의의 두 소를 교환해 다시 정렬하는 최소 횟수를 구한다.
난이도

보통10점 중 4점

유형
정렬, 그리디, 배열
정답자
아직 제출이 없습니다

문제

농부 존은 목장의 소를 한 마리도 빠짐없이 사진 한 장에 담으려고 한다.

사진이 보기 좋으려면 소들이 키가 작은 쪽부터 큰 쪽까지 한 줄로 서 있어야 한다. 존이 소를 그렇게 세우자마자, 늘 말썽을 부리는 베시가 줄에서 빠져나와 다른 자리에 끼어들었다.

존은 소 두 마리의 자리를 서로 바꿔서 줄을 다시 키 순서로 되돌리려고 한다. 줄을 키가 작은 쪽부터 큰 쪽 순서로 만드는 데 필요한 교환 횟수의 최솟값을 구하라. 자리를 바꾸는 두 소가 줄에서 이웃해 있을 필요는 없다.

입력

첫째 줄에 소의 수 NN이 주어진다 (2≤N≤1002 \le N \le 100). 다음 NN개 줄에는 베시가 자리를 옮긴 뒤 줄에 선 순서대로 각 소의 키가 한 줄에 하나씩 주어진다. 키는 11 이상 1 000 0001\,000\,000 이하의 정수이고, 키가 같은 소가 여럿 있을 수 있다. 주어지는 줄은 키가 작은 순서로 정렬된 줄에서 소 한 마리가 빠져나와 다른 자리에 끼어든 결과다.

출력

줄을 다시 키가 작은 쪽부터 큰 쪽 순서로 정렬하는 데 필요한 교환 횟수의 최솟값을 한 줄에 출력한다.

힌트

소 여섯 마리가 키 2,4,7,7,9,32, 4, 7, 7, 9, 3 순서로 서 있다고 하자. 베시는 키가 33인 소이고, 존은 아래와 같이 세 번 교환해서 줄을 정렬한다.

2 4 7 7 9 3   (처음 줄)
2 4 7 7 3 9   (마지막 두 소를 교환)
2 4 3 7 7 9   (앞쪽의 7과 3을 교환)
2 3 4 7 7 9   (4와 3을 교환)

예제3

  1. 예제 1

    입력
    6
    2
    4
    7
    7
    9
    3
    
    예상 출력
    3
    
  2. 예제 2

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

    입력
    5
    4
    4
    4
    4
    4
    
    예상 출력
    0