4472: 最小移动距离
内存限制:256 MB
时间限制:1 S
标准输入输出
题目类型:传统
评测方式:Special Judge
上传者:
提交:17
通过:9
题目描述
平面上有 n 个点,编号为 1∼n。
对于每个点 i(1≤i≤n),都存在一条从点 i 到点 ai(1≤ai≤n,ai 可以等于 i)的有向边。
所有边的长度均为 1。
请你判断是否存在一个最小移动距离 t(t≥1),使得:
- 我们规定,如果从点 u 出发,移动 t 单位长度距离后,到达点 v,就称点 v 是点 u 的目标点。注意,一个点的目标点也可能是它自己。
- 对于图中的每个点 x,如果点 y 是点 x 的目标点,则点 x 也必须是点 y 的目标点。
如果存在这样的 t,请你输出 t 的最小可能值,否则请你输出 -1。
输入格式
第一行包含一个整数 n。
第二行包含 n 个整数 a1,a2,…,an。
输出格式
如果存在满足条件的 t(t≥1),则输出一个正整数,表示 t 的最小可能值。
否则输出 -1。
输入样例 复制
4
2 3 1 4
输出样例 复制
3
数据范围与提示
前 3 个测试点满足 1≤n≤4。
所有测试点满足 1≤n≤100,1≤ai≤n。
所有测试点满足 1≤n≤100,1≤ai≤n。
输入样例2:
4 4 4 4 4
输出样例2:
-1
输入样例3:
4 2 1 4 3
输出样例3:
1