CF612E.Square Root of Permutation
提高+/省选-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
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 = _q_2 = [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 _q_2 = p. If there are several such q find any of them.
长度为 n 的排列是指恰好包含从 1 到 n 的每个整数各一次的数组。例如,q=[4,5,1,2,3] 是一个排列。对于排列 q,其平方定义为排列 p,满足对每个 i=1,…,n,都有 p[i]=q[q[i]]。例如,q=[4,5,1,2,3] 的平方为 p=q2=[2,3,4,5,1]。
本题要求执行逆运算:给定排列 p,请找出一个排列 q,使得 q2=p。若存在多个满足条件的 q,输出任意一个即可。
输入格式
The first line contains integer n (1 ≤ n ≤ 106) — the number of elements in permutation p.
The second line contains n distinct integers _p_1, _p_2, ..., p__n (1 ≤ p__i ≤ n) — the elements of permutation p.
第一行包含一个整数 n(1≤n≤106)—— 排列 p 中的元素个数。
第二行包含 n 个互不相同的整数 p1,p2,…,pn(1≤pi≤n)—— 排列 p 的元素。
输出格式
If there is no permutation q such that _q_2 = p print the number "-1".
If the answer exists print it. The only line should contain n different integers q__i (1 ≤ q__i ≤ n) — the elements of the permutation q. If there are several solutions print any of them.
如果不存在排列 q 使得 q2=p,则输出数字 −1。
如果答案存在,请输出它。唯一的一行应包含 n 个互不相同的整数 qi(1≤qi≤n)——即排列 q 的各个元素。若存在多个解,输出任意一个即可。
输入输出样例
输入#1
4 2 1 4 3
输出#1
3 4 2 1
输入#2
4 2 1 3 4
输出#2
-1
输入#3
5 2 3 4 5 1
输出#3
4 5 1 2 3
输入解题思路,AI测评打分。不知道怎么写?