GCD와 K번째 쿼리

아직 제출이 없습니다시간 제한1초메모리 제한1024 MB

문제

길이가 NN인 양의 정수 수열 A_1,A_2,A_NA\_1, A\_2, \dots A\_N이 주어진다. 다음 쿼리를 수행하는 프로그램을 작성하시오.

  • LL RR KK : LijRL \leq i \leq j \leq R 을 만족하는 모든 순서쌍 (i,j)\left(i, j\right)에 대해 gcd(A_i,A_i+1,,A_j1,A_j)\gcd(A\_i, A\_{i+1}, \dots , A\_{j - 1}, A\_j)를 비내림차순으로 정렬했을 때 KK번째로 나오는 수를 출력한다.

단, gcd(A_i)=A_i\gcd(A\_i) = A\_i로 정의한다.

길이가 33인 수열 (1,2,4)\left(1, 2, 4\right)에 대해 L=1,R=3L = 1, R = 3 일 때 나올 수 있는 gcd\gcd값은 (1,1,1,2,2,4)\left(1, 1, 1, 2, 2, 4\right)이다. 이 때 K=4K=4 라면 22를 출력한다.

입력

첫째 줄에 수열의 길이 NN이 주어진다. (1N20,000)\left(1 \leq N \leq 20\\,000\right)

둘째 줄에 NN개의 정수 A_1,A_2,,A_NA\_1, A\_2, \dots, A\_N이 공백으로 구분되어 주어진다. (1A_i500,000)\left(1 \leq A\_i \leq 500\\,000\right)

셋째 줄에 쿼리의 개수 QQ가 주어진다. (1Q100,000)\left(1 \leq Q \leq 100\\,000\right)

넷째 줄부터 QQ개의 줄에 걸쳐 쿼리 L,R,KL, R, K가 한 줄에 하나씩 주어진다. (1LRN,1K(RL+1)(RL+2)/2)\left(1 \leq L \leq R \leq N, 1 \leq K \leq (R-L+1)(R-L+2)/2\right)

출력

쿼리의 결과를 한 줄에 하나씩 출력한다.