AT_abc065_b [ABC065B] Trained?
题目描述
高桥君想要增强自己的肌肉力量,于是决定在 AtCoder 公司的训练设备上进行训练。
AtCoder 公司的训练设备上有 $N$ 个按钮,恰好有 $1$ 个按钮是亮着的。每个按钮都标有 $1$ 到 $N$ 的编号。当按钮 $i$ 亮着时,按下该按钮会使按钮 $i$ 熄灭,然后按钮 $a_i$ 亮起。可能存在 $i = a_i$ 的情况。按下未亮着的按钮不会发生任何事情。
最开始,按钮 $1$ 是亮着的。高桥君希望在按钮 $2$ 亮着的时候停止训练。
请判断是否有可能让按钮 $2$ 亮起来。如果可能,请求出最少需要按多少次按钮才能让按钮 $2$ 亮起来。
输入格式
输入以以下格式从标准输入读入。
> $N$
> $a_1$ $a_2$ $\ldots$ $a_N$
输出格式
如果无法让按钮 $2$ 亮起来,输出 $-1$。否则,输出让按钮 $2$ 亮起来所需按按钮的最小次数。
说明/提示
## 限制条件
- $2 \leq N \leq 10^5$
- $1 \leq a_i \leq N$
## 样例解释 1
依次按下按钮 $1$ 和按钮 $3$ 即可。
## 样例解释 2
按下按钮 $1$ 后按钮 $3$ 亮起,按下按钮 $3$ 后按钮 $1$ 亮起,因此无法让按钮 $2$ 亮起来。
由 ChatGPT 4.1 翻译