만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

순서가 있는 문제 세트

면접 대비

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

요약
n개 문제의 난이도가 출제 순서대로 주어질 때, n의 약수 k(1보다 큰 값) 중 문제를 n/k개씩 연속으로 나눈 각 구간이 다음 구간의 모든 문제보다 쉬운 k를 모두 구합니다.
난이도

쉬움10점 중 2점

유형
구현, 완전 탐색, 배열
정답자
아직 제출이 없습니다

문제

난이도가 모두 다른 문제 nn개로 구성된 프로그래밍 대회를 준비하고 있다. 문제들을 11번부터 kk번까지 번호가 붙은 kk개의 구역으로 나누고, 각 구역에는 정확히 nk\frac{n}{k}개의 문제를 넣는다. 문제 pp는 구역 ⌈kpn⌉\left\lceil \frac{kp}{n} \right\rceil에 배정한다. 이때 i<ji < j인 모든 구역 쌍 ii, jj에 대해, 구역 ii의 모든 문제가 구역 jj의 모든 문제보다 쉬워야 한다. 단, kk는 11보다 커야 하고 nn의 약수여야 한다. 문제지는 이미 인쇄소에 보냈기 때문에 순서를 바꿀 수 없다. 이 주장이 참이 되는 kk의 값은 무엇인가?

입력

첫 줄에 문제 개수 nn (2≤n≤502 \le n \le 50)이 주어진다. 다음 nn개 줄에는 각각 난이도 dd (1≤d≤n1 \le d \le n)가 정수로 하나씩 주어진다. 값은 문제지에 실린 순서대로 주어지며, 난이도는 모두 다르다. 난이도 11이 가장 쉬운 문제이고 난이도 nn이 가장 어려운 문제이다.

출력

조건을 만족하는 kk의 값을 오름차순으로 한 줄에 하나씩 출력한다. 조건을 만족하는 값이 없으면 −1-1을 출력한다.

예제3

  1. 예제 1

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

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

    입력
    6
    6
    5
    4
    3
    2
    1
    
    예상 출력
    -1