만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

최대공약수

시간 제한1초메모리 제한1024 MB

요약
길이가 n인 배열과 정수 k가 주어질 때, 길이가 k인 연속 부분배열의 최대공약수 중 가장 큰 값을 구합니다.
난이도

보통10점 중 6점

유형
슬라이딩 윈도우, 정수론, 큐
정답자
아직 제출이 없습니다

문제

공집합이 아닌 자연수 집합 AA의 최대공약수는 AA의 모든 원소를 나누는 자연수 dd 중 가장 큰 값이다.

자연수 배열 [a1,a2,…,an][a_1, a_2, \ldots, a_n]과 정수 kk가 주어진다. 길이가 kk인 연속된 부분 배열 [al,al+1,…,al+k−1][a_l, a_{l+1}, \ldots, a_{l+k-1}]을 하나 골라, 그 원소들의 최대공약수가 최대가 되도록 하고 그 값을 출력한다.

입력

첫 줄에 정수 nn과 kk가 주어진다 (2≤n≤500 0002 \le n \le 500\,000, 2≤k≤n2 \le k \le n).

둘째 줄에 자연수 a1,a2,…,ana_1, a_2, \ldots, a_n이 주어진다 (1≤ai≤10181 \le a_i \le 10^{18}).

출력

길이가 kk인 부분 배열의 최대공약수가 될 수 있는 가장 큰 값을 자연수 하나로 출력한다.

예제1

  1. 예제 1

    입력
    10 4
    2 3 4 8 12 6 12 18 4 3
    
    예상 출력
    6