마법의 돌 장난감
면접 대비시간 제한1초메모리 제한256 MB
1부터 N까지의 순열을 인접 구간 뒤집기 100번 이하로 오름차순으로 정렬하고, 불가능하면 -1을 출력한다.
문제
폴리매스 왕국의 힘은 마법의 돌에서 나온다는 전설이 있다. 당신은 마법의 돌 장난감을 파는 친구의 부탁을 받고 가게 정리를 돕기로 했다.
매장에는 개의 장난감이 있고, 크기는 부터 까지의 자연수로 모두 다르다. 당신은 이 장난감을 크기 순서대로 정렬하려고 한다. 왼쪽부터 크기가 차례로 이 되게 하려는 것이다. 이를 위해 몇 번의 조작을 할 수 있다. 한 번의 조작은 인접한 몇 개의 장난감을 골라 그 순서를 뒤집는 일이다. 예를 들어 왼쪽부터 장난감의 크기가 차례로 인 상황에서 세 번째부터 다섯 번째 장난감에 조작을 하면 크기가 차례로 가 되어 정렬이 끝난다.
장난감을 100회 이하의 조작으로 정렬할 수 있는지 판단하고, 정렬할 수 있다면 그 방법을 아무거나 하나 찾는 프로그램을 작성하시오.
입력
첫 줄에는 장난감의 수 이 주어진다. 둘째 줄에는 각 장난감의 크기를 나타내는 개의 정수 이 빈칸을 사이에 두고 주어진다.
출력
100번 이하의 조작으로 장난감을 정렬할 수 없다면 을 출력하고 프로그램을 종료한다. 정렬할 수 있다면 첫 줄에 조작의 횟수 를 출력한다. 둘째 줄부터 개의 줄에는 각 조작에서 뒤집는 장난감의 왼쪽 끝 번호 와 오른쪽 끝 번호 를 출력한다. 예를 들어 왼쪽에서 세 번째 장난감부터 왼쪽에서 다섯 번째 장난감까지 조작을 한다면 를 출력한다.
제한
정렬이 가능하다면 출력은 아래 조건을 만족해야 한다.