问题 6337 --此身为剑6337: 此身为剑★★★
时间限制: 2 Sec 内存限制: 256 MB
提交: 5 解决: 2
[提交][状态][命题人:]题目描述
剑身碎裂,落入彻骨的寒冷中。
凡铁俗器皆是无用之物,它们的上限,望一眼就看得到尽头。
「我还要剑何用?」
她没有眷恋,眼中亦没有容纳任何一物。
「从此刻起,此身为剑。」
要想跨越所谓的极限,要想得到无人涉足的突破
——唯有将自己也视作一份「薪柴」了。
镜流面前有 n 个敌人,第 i 个敌人的属性是 a[i] 。
镜流会出 q 次剑攻击敌人,第 i 出剑的攻击属性为 x[i] 。若一个连续区间 [l,r] 内的敌人的属性的最大公约数为 x[i] ,则这些敌人会被成功击中,即 gcd(a[l],a[l+1],...,a[r])=x[i] 。
每次出剑前,请你帮镜流计算下有多少种 [l,r] 区间满足条件。
输入
第一行包含一个正整数 n (1≤n≤10^5) ,表示敌人数。
第二行包含 n 个正整数 a[1],a[2],...,a[n] (1≤a[i]≤10^9) ,表示每个敌人的属性。
第三行包含一个正整数 q (1≤q≤3·10^5) ,表示出剑次数。
接下来 q 行,每行一个整数 x[i] (1≤x[i]≤10^9) ,表示第 i 次出剑的攻击属性。
输出
对于每次出剑,输出一行包含一个整数,表示有多少种 [l,r] 区间满足该次出剑的击中条件。
样例1:
1
2
2
0
1
样例2:
14
0
2
2
2
0
2
2
1
1
提示
来源
[提交][状态]