수열 찾기

B가 주어질 때, 모든 A_i가 서로 다르고 1보다 크며 A_i^{B_i}가 나머지 A_j의 곱으로 나누어지는 수열 A가 존재하는지 판정한다.

어려움9정수론수학조합론그리디아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

길이가 NN인 양의 정수 수열 B=B0,B1,,BN1B = B_0, B_1, \ldots, B_{N-1}이 주어진다. 다음 조건을 모두 만족하는 수열 A=A0,A1,,AN1A = A_0, A_1, \ldots, A_{N-1}이 존재하는지 판정하는 프로그램을 작성하시오.

  • AA의 원소는 서로 모두 다르다.
  • 모든 ii에 대해 Ai>1A_i > 1이다.
  • 모든 ii에 대해 AiBiA_i^{B_i}PiP_i로 나누어떨어진다. 여기서 PiP_iAA에서 AiA_i를 제외한 나머지를 모두 곱한 값, 즉 Pi=A0×A1××Ai1×Ai+1××AN1P_i = A_0 \times A_1 \times \cdots \times A_{i-1} \times A_{i+1} \times \cdots \times A_{N-1}이다.

AiA_i의 크기에는 상한이 없다.

입력

첫째 줄에 수열의 길이 NN (2N502 \le N \le 50)이 주어진다.

둘째 줄에 B0B_0부터 BN1B_{N-1}까지 NN개의 정수가 공백으로 구분되어 주어진다. (1Bi101 \le B_i \le 10)

출력

조건을 만족하는 수열 AA를 만들 수 있으면 1을, 만들 수 없으면 0을 출력한다.