#5767. CSES1160 行星查询 II
0
CSES1160 行星查询 II
#CS1160. 行星查询 II
行星查询 II
题目背景
翻译自 CSES-1160 题。
题目描述
你正在玩一个由 n 个行星组成的游戏。每个行星都有一个传送门,可以传送到另一个行星(或者是它自己)。
你的任务是处理 q 个查询,查询的形式是:你现在在行星 a 上,想要到达行星 b。请问最少需要多少次传送?
输入格式
第一行包含两个整数 n 和 q:分别表示行星的数量和查询的数量。行星编号为 1,2,…,n1,2,…,n1,2,…,n。
第二行包含 n 个整数 t1,t2,…,tnt_1,t_2,…,t_nt1,t2,…,tn:表示每个行星的传送门目的地。如果 ti=it_i = iti=i,则表示该行星的传送门指向自己。
接下来的 q 行,每行包含两个整数 a 和 b:表示你现在在行星 a 上,想要到达行星 b。
输出格式
对每个查询,输出到达目标行星所需的最少传送次数。如果无法到达目标行星,输出 −1−1−1。
样例
5 3
2 3 2 3 2
1 2
1 3
1 4
1
2
-1
说明/提示
1≤ti≤n1 \leq t_i \leq n1≤ti≤n;