시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 512 MB | 111 | 52 | 41 | 55.405% |
경아는 $N$($1 \le N \le 3 \cdot 10^5 $)개의 수를 이용해서 최대 공약수를 계산하는 놀이를 하고 있다. 경아가 가지고 있는 수는 모두 $1$ 이상 $10^6$ 이하의 정수이다.
경아가 하는 놀이의 진행 방식은 다음과 같다.
경아는 이 놀이를 한참 하다가 피곤해졌다. 경아가 선택한 $Q$($ 1 \le Q \le 3 \cdot 10^5 $)개의 수가 주어졌을 때 대신 답을 계산해주는 프로그램을 작성해보자.
첫째 줄에 경아가 가지고 있는 수의 개수 $N$ ($ 1 \le N \le 3 \cdot 10^5 $)이 주어진다.
둘째 줄에 경아가 가지고 있는 $N$개의 수 목록이 공백으로 구분되어 주어진다. 각 수는 $1$ 이상 $10^6$ 이하의 정수이다.
셋째 줄에 경아가 선택한 수의 개수 $Q$ ($ 1 \le Q \le 3 \cdot 10^5$)가 주어진다.
넷째 줄부터 $Q$줄에 걸쳐 경아가 선택한 수 $K$가 한 줄에 하나씩 주어진다. 각 수는 $1$ 이상 $10^6$ 이하의 정수이다.
$Q$줄에 걸쳐, 가지고 있는 수에서 최대공약수가 $K$가 되게끔 가능한 한 많은 수를 골랐을 때 고를 수 있는 수의 개수를 출력한다. 만약 어떻게 골라도 최대 공약수가 $K$가 되게 만들 수 없다면 대신 $-1$을 출력한다.
5 2 6 10 3 8 5 1 2 3 4 6
5 4 2 -1 1