GCD와 K번째 쿼리
시간 제한1초메모리 제한1024 MB
길이 N의 양의 정수 수열에서 구간 [L, R] 안의 모든 부분 배열 gcd 값을 정렬했을 때 K번째 값을 구합니다.
문제
길이가 인 양의 정수 수열 이 주어진다. 다음 쿼리를 처리하는 프로그램을 작성하시오.
- : 을 만족하는 모든 순서쌍 에 대해 를 구한다. 이 값들을 비내림차순으로 정렬했을 때 번째로 나오는 수를 출력한다.
단, 로 정의한다.
길이가 인 수열 에서 , 일 때 나올 수 있는 값은 이다. 이때 라면 를 출력한다.
입력
첫째 줄에 수열의 길이 이 주어진다. ()
둘째 줄에 개의 정수 이 공백으로 구분되어 주어진다. ()
셋째 줄에 쿼리의 개수 가 주어진다. ()
넷째 줄부터 개의 줄에 걸쳐 쿼리 , , 가 한 줄에 하나씩 주어진다. (, )
출력
쿼리의 결과를 한 줄에 하나씩 출력한다.