#G2506C5C. [GESP202506 五级] 2. 最大公因数

[GESP202506 五级] 2. 最大公因数

题目描述

对于两个正整数 a,ba,b,他们的最大公因数记为 gcd⁡(a,b)\gcd(a,b)。对于 k>3k > 3 个正整数 c1,c2,…,ckc_1,c_2,\dots,c_k,他们的最大公因数为:

gcd⁡(c1,c2,…,ck)=gcd⁡(gcd⁡(c1,c2,…,ck−1),ck)\gcd(c_1,c_2,\dots,c_k)=\gcd(\gcd(c_1,c_2,\dots,c_{k-1}),c_k)

给定 nn 个正整数 a1,a2,…,ana_1,a_2,\dots,a_n 以及 qq 组询问。对于第 i(1≤i≤q)i(1 \le i \le q) 组询问,请求出 a1+i,a2+i,…,an+ia_1+i,a_2+i,\dots,a_n+i 的最大公因数,也即 gcd⁡(a1+i,a2+i,…,an+i)\gcd(a_1+i,a_2+i,\dots,a_n+i)。

输入格式

第一行,两个正整数 n,qn,q,分别表示给定正整数的数量,以及询问组数。

第二行,nn 个正整数 a1,a2,…,ana_1,a_2,\dots,a_n。

输出格式

输出共 qq 行,第 ii 行包含一个正整数,表示 a1+i,a2+i,…,an+ia_1+i,a_2+i,\dots,a_n+i 的最大公因数。

5 3
6 9 12 18 30
1
1
3
3 5
31 47 59
4
1
2
1
4

说明/提示

对于 60%60\% 的测试点,保证 1≤n≤1031 \le n \le 10^3,1≤q≤101 \le q \le 10。

对于所有测试点,保证 1≤n≤1051 \le n \le 10^5,1≤q≤1051 \le q \le 10^5,1≤ai≤10001 \le a_i \le 1000。