자물쇠

시간 제한1초메모리 제한128 MB

요약
좌측 순환 이동, 구간 반전, 다시 좌측 순환 이동을 거친 최종 배열이 주어질 때 이를 만드는 k, p, q, k 값을 구합니다.
난이도

보통10점 중 6점

유형
배열, 시뮬레이션, 수학
정답자
아직 제출이 없습니다

문제

N개의 칸이 한 줄로 놓인 자물쇠가 있다. 처음에는 1번 칸부터 N번 칸까지 숫자 1, 2, ..., N이 차례대로 들어 있다.

자물쇠를 잠그려면 다음 세 동작을 순서대로 한 번씩 수행한다.

  1. 왼쪽으로 k칸 민다. 왼쪽 밖으로 나간 숫자는 같은 순서로 오른쪽 끝에 붙는다. 이 동작을 k-왼쪽밀기라고 하며, 1 <= k < N이다.
  2. 현재 p번 칸부터 q번 칸까지의 숫자 순서를 뒤집는다. 이 동작을 (p,q)-구간뒤집기라고 하며, p < q이다.
  3. 다시 왼쪽으로 k칸 민다. 이때도 1 <= k < N이다.

잠긴 뒤의 자물쇠 상태가 주어진다. 이 상태를 만들 수 있는 세 동작의 값을 찾아 출력하라. 가능한 답이 여러 개라면 아무거나 하나만 출력하면 된다.

입력

첫째 줄에 자물쇠 칸의 수 N이 주어진다. N은 10 이상 500 이하이다.

둘째 줄에는 잠긴 자물쇠의 1번 칸부터 N번 칸까지 들어 있는 숫자 N개가 공백으로 구분되어 주어진다.

출력

첫째 줄에 처음 k-왼쪽밀기의 k를 출력한다.

둘째 줄에 (p,q)-구간뒤집기의 p와 q를 공백으로 구분하여 출력한다.

셋째 줄에 마지막 k-왼쪽밀기의 k를 출력한다.

답이 여러 개이면 그중 하나만 출력한다.

예제1

  1. 예제 1

    입력
    10
    9 2 1 10 3 4 5 6 7 8
    
    예상 출력
    3
    7 9
    5