#P1069. GCD可达性

GCD可达性

题目描述

给定 nn 个点以及它们的权值 a[1n]a[1 \ldots n]。如果 iji \leq jgcd(a[i],a[j])>1\operatorname{gcd}(a[i], a[j])>1 ,那么从点 ii 可以到达点 jj。请注意:

  • ii 能到达自身;
  • gcd(0,0)=0\operatorname{gcd}(0,0)=0

现在给出 qq 个询问 (x,y)(x, y),你需要判断从 a[x]a[x] 是否可以到达 a[y]a[y]

输入格式

第一行包含两个整数 n,qn, q

第二行包含 nn 个整数 a[1n]a[1 \ldots n]

接下来 qq 行,每行包含两个整数 (x,y)(x, y),代表一组询问。

输出格式

输出 qq 行。每行输出"Shi"或者"Fou",代表询问的答案。

5 4
1 3 0 2 1
1 3
2 4
1 4
1 1
Fou
Shi
Fou
Shi

样例解释 1

在第一个示例中,

  • 第一个询问,从 a[1]a[1]a[3]a[3],由于 gcd(1,0)=1\operatorname{gcd}(1, 0) = 1,所以不能到达,输出 "Fou"。
  • 第二个询问,从 a[2]a[2]a[4]a[4],可以通过 a[3]a[3] 到达,所以输出 "Shi"。
  • 第三个询问,从 a[1]a[1]a[4]a[4],由于没有点的 gcd 值大于 1,所以不能到达,输出 "Fou"。
  • 第四个询问,从 a[1]a[1]a[1]a[1],可以到达自身,所以输出 "Shi"。

数据规模与约定

对于 40% 的数据, n,q1000,0a[i]10n, q \leq 1000,0 \leq a[i] \leq 10

对于 80% 的数据, n,q1000,0a[i]500n, q \leq 1000,0 \leq a[i] \leq 500

对于 100% 的数据, n,q105,0a[i]1000,xyn, q \leq 10^5, 0 \leq a[i] \leq 1000, x \leq y

大样例

大样例下载