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

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

수열 찾기

시간 제한2초메모리 제한512 MB

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

어려움10점 중 9점

유형
정수론, 수학, 조합론, 그리디
정답자
아직 제출이 없습니다

문제

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

  • AA의 원소는 서로 모두 다르다.
  • 모든 ii에 대해 Ai>1A_i > 1이다.
  • 모든 ii에 대해 AiBiA_i^{B_i}은 PiP_i로 나누어떨어진다. 여기서 PiP_i는 AA에서 AiA_i를 제외한 나머지를 모두 곱한 값, 즉 Pi=A0×A1×⋯×Ai−1×Ai+1×⋯×AN−1P_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 (2≤N≤502 \le N \le 50)이 주어진다.

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

출력

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

예제3

  1. 예제 1

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

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

    입력
    3
    7 7 7
    
    예상 출력
    1