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

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

GCD 테이블

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

요약
숨겨진 수열의 모든 N^2개 최대공약수 값이 임의 순서로 주어질 때 원래 수열을 복원한다.
난이도

보통10점 중 7점

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

문제

길이가 NN인 수열 A=(a1,a2,…,aN)A = (a_1, a_2, \dots, a_N)의 GCD 테이블 GG는 다음과 같이 정의된다.

gij=gcd⁡(ai,aj)g_{ij} = \gcd(a_i, a_j)

여기서 gcd⁡(x,y)\gcd(x, y)는 xx와 yy의 최대공약수이다. 예를 들어 A=(4,3,6,2)A = (4, 3, 6, 2)의 GCD 테이블은 다음과 같다.

4362
44122
31331
62362
22122

GCD 테이블 GG를 이루는 값 N2N^2개가 순서 없이 주어진다. 원래 수열 AA를 복원하여라.

입력

첫째 줄에 수열 AA의 길이 NN(1≤N≤5001 \le N \le 500)이 주어진다.

둘째 줄에 GCD 테이블의 값 N2N^2개가 임의의 순서로 공백을 사이에 두고 주어진다. 값은 모두 양의 정수이고 1,000,000,0001{,}000{,}000{,}000 이하이다. 답이 존재하지 않는 입력은 주어지지 않는다.

출력

복원한 수열의 원소 NN개를 공백으로 구분해 한 줄에 출력한다.

원소를 어떤 순서로 늘어놓아도 GCD 테이블은 같으므로, 오름차순으로 정렬해서 출력한다. 이것이 사전순으로 가장 작은 답이다. 원소의 다중집합은 유일하게 정해진다.

예제3

  1. 예제 1

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

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

    입력
    2
    1 1 1 1
    
    예상 출력
    1 1