1부터 N까지의 숫자가 각 칸에 차례대로 들어있는 놀이판이 있다. 예를 들어 10 칸을 가진 놀이판의 초기 상태는 다음과 같다.
구간[i,j]는 놀이판의 왼쪽 i번째 칸부터 j번째칸 사이에 있는 모든 숫자를 말한다. 단 구간[i,j]에서 항상 i < j라고 가정한다. 우리는 이 놀이판의 한 구간을 잡아서 그 구간을 완전히 뒤집을 수 있다. 만일 초기상태에서 구간[3,8]을 뒤집으면 놀이판은 다음과 같이 변한다.
이어 이 상태에서 구간[1,5], 구간[6,9]를 연이어 뒤집으면 놀이판은 다음과 같이 각각 바뀐다.
여러분은 세 번 뒤집힌 어떤 놀이판의 상태를 입력으로 받아서 이를 다시 초기 상태로 돌리기 위해서 어떤 세 구간을 차례대로 뒤집어야 하는지를 계산해야 한다. 즉 여러분이 찾아낸 세 개의 구간대로 입력 놀이판을 차례대로 뒤집으면, 놀이판은 초기상태인 1, 2, 3, ..., N 으로 되돌아가야 한다.
단 어떤 경우에는 초기상태로 되돌릴 수 있는 세 구간이 여러 개 있을 수도 있는데, 그러한 경우에는 그 중 하나 만 출력해도 된다. 구간[i,i]를 뒤집으면 아무런 변화가 없는데 이러한 것도 허용이 된다.
프로그램의 실행시간은 1초를 넘을 수 없다. 부분 점수는 없다.
입력 10 6 7 8 2 1 9 3 4 5 10 출력 6 9 1 5 3 8
출처:koi 지역 고등 기출