#E0048. 数列整体GCD

数列整体GCD

题目描述

给定一个长度为 nn 的数列 a1,a2,,ana_1, a_2, \ldots, a_n 以及一个长度为 mm 的数列 b1,b2,,bmb_1, b_2, \ldots, b_m

对于数列 bb 的任意下标 j(1jm)j(1 \le j \le m),你需要求出 a1+bj,a2+bj,,an+bja_1 + b_j, a_2 + b_j, \ldots, a_n + b_j 的最大公约数。

输入格式

第一行,两个整数 nnmm,以一个空格分隔(1n,m21051 \le n,m \le 2 \cdot 10^5)。

第二行,nn 个整数 a1,a2,,an(1ai1018)a_1, a_2, \ldots, a_n(1 \le a_i \le 10^{18}),两两之间以一个空格分隔。

第三行,mm 个整数 b1,b2,,bm(1bj1018)b_1, b_2, \ldots, b_m(1 \le b_j \le 10^{18}),两两之间以一个空格分隔。

输出格式

输出共一行,包含 mm 个整数,两两之间以一个空格分隔。

其中第 j(1jm)j(1 \le j \le m) 个整数表示 a1+bj,a2+bj,,an+bja_1 + b_j, a_2 + b_j, \ldots, a_n + b_j 的最大公约数(即数列 aa 中的 nn 个元素各自均加上 bjb_j 后,得到的数列中所有元素的最大公约数)。

4 4
1 25 121 169
1 2 7 23
2 3 8 24

说明/提示

样例解释

  • b1=1b_1 = 1gcd(1+1,25+1,121+1,169+1)=2gcd(1+1, 25+1, 121+1, 169+1) = 2
  • b2=2b_2 = 2gcd(1+2,25+2,121+2,169+2)=3gcd(1+2, 25+2, 121+2, 169+2) = 3
  • b3=7b_3 = 7gcd(1+7,25+7,121+7,169+7)=8gcd(1+7, 25+7, 121+7, 169+7) = 8
  • b4=23b_4 = 23gcd(1+23,25+23,121+23,169+23)=24gcd(1+23, 25+23, 121+23, 169+23) = 24

数据规模与约定

  • 对于 30%30\% 的数据,n,m20;ai,bj1000n,m \le 20; a_i, b_j \le 1000
  • 对于 60%60\% 的数据,n,m2000;ai,bj109n,m \le 2000; a_i, b_j \le 10^9
  • 对于 100%100\% 的数据,1n,m2105;1ai,bj10181 \le n,m \le 2 \cdot 10^5; 1 \le a_i, b_j \le 10^{18}