#2021. 迷失的时空旅行者

迷失的时空旅行者

迷失的时空旅行者

题目描述

给定一个有 nn 个点的图,每个点恰好有一条出边。你最开始位于 xx 号点;每一天,你都会沿着当前所在结点的出边走到下一个结点 axa_x。你会无限地重复这个过程。

你想知道:最晚能够持续到第多少天,使得你可以保证在这之前的每一天,你所经过的城市都不是未来会被你经过无限次的城市。
如果一开始所在的城市就在未来会被经过无限次的城市集合中,则答案为 00


数据范围

  • 1T2×1051 \le T \le 2 \times 10^5
  • 1n2×1051 \le n \le 2 \times 10^5
  • 1xn1 \le x \le n
  • 1ain1 \le a_i \le n
  • 保证所有测试数据中 n2×105\sum n \le 2 \times 10^5

输入格式

从标准输入按以下格式读取数据:

TT

nn xx

a1a_1 a2a_2 \dots ana_n

其中:

  • 第一行输入一个整数 TT,表示测试数据组数。
  • 对于每组数据,第一行输入两个整数 n,xn,x,表示结点数和起点编号。
  • 第二行输入 nn 个整数 a1,a2,,ana_1,a_2,\cdots,a_n,其中 aia_i 表示从结点 ii 出发会走到的下一个结点。

输出格式

对于每组测试数据,输出一行一个整数,表示答案。
如果一开始就在未来会被无限次经过的城市上,则输出 00

样例

3
7 4
6 1 2 6 1 3 2
6 2
2 1 6 4 6 2
2 2
2 2
1
0
0