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.

长度为 nn 的排列是指恰好包含从 11 到 nn 的每个整数各一次的数组。例如,q=[4,5,1,2,3]q = [4, 5, 1, 2, 3] 是一个排列。对于排列 qq,其平方定义为排列 pp,满足对每个 i=1,…,ni = 1,\dots,n,都有 p[i]=q[q[i]]p[i] = q[q[i]]。例如,q=[4,5,1,2,3]q = [4, 5, 1, 2, 3] 的平方为 p=q2=[2,3,4,5,1]p = q^2 = [2, 3, 4, 5, 1]。

本题要求执行逆运算:给定排列 pp,请找出一个排列 qq,使得 q2=pq^2 = p。若存在多个满足条件的 qq,输出任意一个即可。

输入格式

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.

第一行包含一个整数 nn(1≤n≤1061 \leq n \leq 10^6)—— 排列 pp 中的元素个数。

第二行包含 nn 个互不相同的整数 p1,p2,…,pnp_1, p_2, \ldots, p_n(1≤pi≤n1 \leq p_i \leq n)—— 排列 pp 的元素。

输出格式

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.

如果不存在排列 qq 使得 q2=pq^2 = p,则输出数字 −1-1。

如果答案存在,请输出它。唯一的一行应包含 nn 个互不相同的整数 qiq_i(1≤qi≤n1 \le q_i \le n)——即排列 qq 的各个元素。若存在多个解,输出任意一个即可。

输入输出样例

  • 输入#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测评打分。不知道怎么写?

首页