问题 D:蜘蛛交友

文件提交:无需freopen 内存限制:128 MB 时间限制:1.000 S
评测方式:普通裁判 命题人:
提交:3 解决:2

题目描述

在一个由 $n$ 只蜘蛛组成的庞大的群落中,每只蜘蛛的腿数可能不同。我们用 $a_i$ 来表示第 $i$ 只蜘蛛的腿数。蜘蛛之间存在一种特殊的友谊关系,这种关系决定它们之间能否直接通信。

友谊的具体定义如下:如果第 $i$ 只蜘蛛拥有的腿数 $a_i$ 和第 $j$ 只蜘蛛的腿数 $a_j$ 的最大公约数不等于 $1$,则这两只蜘蛛被视为朋友。换句话说,如果存在一个大于等于 $2$ 的整数 $k$,可以同时间整除 $a_i$ 和 $a_j$,那么 $i$ 和 $j$ 这两只蜘蛛间则有一条直接关系连接。

蜘蛛通过这种朋友关系来传递信息:若两只蜘蛛是朋友,它们之间可以在 $1$ 秒钟内直接传递信息。反之,如果两者直接并非朋友关系,那么信息则需要经过一系列中间蜘蛛传递。信息的传递需要经过若干只互为朋友的蜘蛛,逐步将信息转送到目标蜘蛛。

现在面临的问题是:给定从超始蜘蛛 $s$ 到目标蜘蛛 $t$ 传递信息的任务,求解在这个蜘蛛社区中,信息传递所需的最短时间。

你需要设计一个程序解决这个问题,计算出从源蜘蛛 $s$ 传递信息到目标蜘蛛 $t$ 所需的最短路径的相关信息,即参与信息传输的蜘蛛数量。

输入

输入的第一行包含一个整数 $n$, 表示蜘蛛群落中蜘蛛的数量

第二行包含 $n$ 个整数 $a_1,a_2,...,a_n$ 表示每只蜘蛛的腿数

第三行包含两个整数 $s$ 和 $t$,表示必须在它们之间发送信息的蜘蛛编号

$2\le n\le 3\times 10^5, 1\le a_i\le 3\times 10^5, 1\le s,t\le n$

输出

如果给定的一对蜘蛛之间无法传输信息,则输出 -1

否则,输出参与信息传输的蜘蛛数量

样例输入-1 复制

7
2 14 9 6 8 15 11
5 6

样例输出-1 复制

3

样例输入-2 复制

7
2 14 9 6 8 15 11
5 5

样例输出-2 复制

1

提示

样例解释1:

从 $5$ 号蜘蛛到 $6$ 号蜘蛛的信息最好是通过 $4$ 号蜘蛛,在此过程中,参与信息传输的蜘蛛数量为 $3$