4472: 最小移动距离

内存限制:256 MB 时间限制:1 S 标准输入输出
题目类型:传统 评测方式:Special Judge 上传者:
提交:17 通过:9

题目描述

平面上有 n 个点,编号为 1∼n

对于每个点 i1≤i≤n),都存在一条从点 i 到点 ai1≤ai≤na可以等于 i)的有向边

所有边的长度均为 1

请你判断是否存在一个最小移动距离 tt≥1),使得:

  • 我们规定,如果从点 u 出发,移动 t 单位长度距离后,到达点 v,就称点 v 是点 u 的目标点。注意,一个点的目标点也可能是它自己。
  • 对于图中的每个点 x,如果点 y 是点 x 的目标点,则点 x 也必须是点 y 的目标点。

如果存在这样的 t,请你输出 t 的最小可能值,否则请你输出 -1。

输入格式

第一行包含一个整数 n

第二行包含 n 个整数 a1,a2,…,an

输出格式

如果存在满足条件的 tt≥1),则输出一个正整数,表示 的最小可能值。

否则输出 -1。

输入样例 复制

4
2 3 1 4

输出样例 复制

3

数据范围与提示

前 个测试点满足 1≤n≤4
所有测试点满足 1≤n≤1001≤ai≤n

输入样例2:

4
4 4 4 4

输出样例2:

-1 

输入样例3:

4
2 1 4 3

输出样例3:

1