아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

숫자 세기 노래

면접 대비

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

요약
원형으로 둘러선 아이들이 빠져나간 순서가 주어질 때, 그 순서를 정확히 만들어 내는 가장 작은 시행 횟수 k를 구하거나 불가능하면 NIE를 출력한다.
난이도

보통10점 중 6점

유형
시뮬레이션, 완전 탐색, 수학, 구현
정답자
아직 제출이 없습니다

문제

아이들이 원을 이루어 서서 숫자 세기 놀이를 한다. 아이들에게는 11번부터 nn번까지 번호가 매겨져 있으며, 각 i=1,2,…,n−1i = 1, 2, \dots, n-1에 대해 i+1i+1번 아이가 ii번 아이의 바로 왼쪽에 서 있고, 11번 아이는 nn번 아이의 바로 왼쪽에 서 있다. 즉 원을 따라 왼쪽으로 갈수록 번호가 1,2,…,n1, 2, \dots, n으로 커지다가 다시 11번으로 돌아온다.

한 번의 세기는 다음과 같이 진행된다. 매번 노래는 정확히 kk음절로 이루어진다. 그 회차를 시작하는 아이가 첫 번째 음절을 외치고, 그 왼쪽 아이가 두 번째 음절을, 다시 그 왼쪽 아이가 세 번째 음절을 외치는 식으로 원을 따라 왼쪽으로 계속 이어진다(kk가 남은 아이 수보다 크면 같은 아이가 여러 번 외칠 수도 있다). kk번째(마지막) 음절을 외친 아이가 지목되어 원에서 빠져나간다.

  • 첫 번째 세기는 11번 아이가 시작한다.
  • 그 다음부터는 방금 빠져나간 아이의 바로 왼쪽에 있던 아이가 새로운 세기를 시작한다.

원에 아무도 남지 않을 때까지 세기를 반복한다.

Counting-out illustration

우리는 놀이 전체를 지켜보며 아이들이 빠져나간 순서를 기록했다. 이 순서만 보고 노래가 몇 음절이었는지 알아내려고 한다. 빠져나간 순서가 주어질 때, 그 순서와 정확히 일치하도록 아이들을 내보내는 kk음절 노래가 존재하는 가장 작은 양의 정수 kk를 구하거나, 그런 kk가 존재하지 않음을 판정하는 프로그램을 작성하라.

입력

첫째 줄에 정수 nn이 주어진다(2≤n≤202 \le n \le 20). 둘째 줄에는 공백으로 구분된 nn개의 정수가 주어지며, ii번째 수는 ii번 아이가 몇 번째 회차에 원에서 빠져나갔는지를 나타낸다. 이 nn개의 수는 11부터 nn까지의 순열을 이룬다.

출력

노래가 가질 수 있는 가장 작은 음절 수 kk를 한 줄에 출력한다. 그런 kk가 존재하지 않으면 대신 NIE를 출력한다.

예제3

  1. 예제 1

    입력
    4
    1 4 2 3
    
    예상 출력
    5
    
  2. 예제 2

    입력
    2
    1 2
    
    예상 출력
    1
    
  3. 예제 3

    입력
    2
    2 1
    
    예상 출력
    2