문제
Farmer John은 아침에 목초지로 나가기 전에, 자신의 소들을 미리 정렬해 두려고 한다.
소는 편리하게도
현재 소들은 한 줄로 서 있고, 그 순서는
Farmer John의 목표는 소들의 순서를
하지만 오늘 소들이 너무 졸려 있어서, 어느 순간이든 Farmer John의 지시를 듣고 있는 소는 항상 Farmer John과 마주 보고 있는 맨 앞의 소 한 마리뿐이다.
한 번의 시간 단계에서 Farmer John은 이 소에게 다음과 같은 명령을 내릴 수 있다.
어떤 정수
k (1 ≤ k ≤ N-1) 를 골라,이 소에게 줄에서 뒤쪽으로
k 칸 이동하라고 지시한다.
이때, 이 소가 지나쳐 가는
예를 들어,
FJ 앞:
4, 3, 2, 1
이때 Farmer John의 지시를 듣고 있는 소는 소 4뿐이다.
만약 그에게 "2칸 뒤로 가라"라고 지시하면, 이후 소들의 순서는 다음과 같이 된다.
FJ 앞:
3, 2, 4, 1
이제 Farmer John과 마주 보고 있는 소는 소 3이 되며, 두 번째 시간 단계에서 Farmer John은 소 3에게 또 다른 지시를 내릴 수 있다. 이런 식으로 계속 진행하여, 결국 소들의 순서를 정렬할 수 있다.
Farmer John은 소들을 가능한 한 빨리 정렬해서, 자기 아침 식사를 하러 농가로 돌아가고 싶어 한다.
Farmer John이 최적으로 행동할 때, 소들을 정렬하는 데 필요한 최소 시간 단계 수를 구하라.
입력
첫 번째 줄에 정수
두 번째 줄에
이는 소들의 초기 순서를 나타낸다.
출력
Farmer John이 최적으로 명령을 내릴 때,
예제
4
1 2 4 3
3