양손 정렬
시간 제한1초메모리 제한1024 MB
순열이 주어질 때 앞쪽 절반의 원소와 뒤쪽 절반의 원소를 한 번씩 맞바꿔 오름차순으로 만드는 최소 연산 횟수를 구하거나 불가능하면 -1을 출력한다.
문제
이상 이하의 모든 정수가 한 번씩 등장하는 수열 이 주어진다. 이 수열에 아래 연산을 회 이상 적용해서 오름차순으로 만들려고 한다.
- 수열의 앞쪽 개의 원소 중 하나와 수열의 뒤쪽 개의 원소 중 하나를 고른 뒤, 두 원소의 위치를 맞바꾼다.
수열을 오름차순으로 만드는 데 필요한 최소 연산 횟수를 구하자.
입력
첫째 줄에 수열의 길이 이 주어진다.
둘째 줄에 이 공백으로 구분되어 주어진다.
수열의 원소는 부터 까지의 정수가 한 번씩만 등장한다.
출력
수열을 오름차순으로 정렬하는 데 드는 최소 연산 횟수를 출력한다. 오름차순으로 정렬할 수 없다면 을 출력한다.
힌트
는 의 소수점 이하를 버림한 값이다. 예를 들어, 는 이다.