2539.Square Root of Permutation

Time Limit: 1s Memory Limit: 256MB

A permutation of length n is an array containing each integer from 1 to n exactly once. For example, q=[4,5,1,2,3] is a permutation. For the permutation q the square of permutation is the permutation p that p[i]=q[q[i]] for each i=1... n. For example, the square of q=[4,5,1,2,3] is p=q2=[2,3,4,5,1].

This problem is about the inverse operation: given the permutation p you task is to find such permutation q that q2=p. If there are several such q find any of them.

Input Format(From the terminal/stdin)

The first line contains integer n (1 \le n \le 106) - the number of elements in permutation p.

The second line contains n distinct integers p1,p2,...,pn (1 \le pi \le n) - the elements of permutation p.

Output Format(To the terminal/stdout)

If there is no permutation q such that q2=p print the number "-1".

If the answer exists print it. The only line should contain n different integers qi (1 \le qi \le n) - the elements of the permutation q. If there are several solutions print any of them.

Sample Input 1

Copy
4
2 1 4 3
 \n
 · · · \n

Sample Output 1

Copy
3 4 2 1
 · · · \n

Sample Input 2

Copy
4
2 1 3 4
 \n
 · · · \n

Sample Output 2

Copy
-1
  \n

Sample Input 3

Copy
5
2 3 4 5 1
 \n
 · · · · \n

Sample Output 3

Copy
4 5 1 2 3
 · · · · \n

Submit

请先 登录

© 2025 FAQs