#aBC377e. [ABC377E] Permute K times 2

[ABC377E] Permute K times 2

AT_abc377_e [ABC377E] Permute K times 2

题目描述

给定一个 (1,2,,N) (1,2,\ldots,N) 的排列 P=(P1,P2,,PN) P=(P_1,P_2,\ldots,P_N)

你需要进行 K K 次如下操作:

  • 对于 i=1,2,,N i=1,2,\ldots,N 同时Pi P_i 更新为 PPi P_{P_i}

请输出所有操作结束后的 P P

输入格式

输入以如下格式从标准输入读入:

N N K K P1 P_1 P2 P_2 \ldots PN P_N

输出格式

请输出所有操作结束后的 P P ,即 P1,P2,,PN P_1,P_2,\ldots,P_N ,用空格分隔。

输入输出样例 #1

输入 #1

6 3
5 6 3 1 2 4

输出 #1

6 1 3 2 4 5

输入输出样例 #2

输入 #2

5 1000000000000000000
1 2 3 4 5

输出 #2

1 2 3 4 5

输入输出样例 #3

输入 #3

29 51912426
7 24 8 23 6 1 4 19 11 18 20 9 17 28 22 27 15 2 12 26 10 13 14 25 5 29 3 21 16

输出 #3

18 23 16 24 21 10 2 27 19 7 12 8 13 5 15 26 17 4 3 9 1 22 25 14 28 11 29 6 20

说明/提示

限制条件

  • 1N2×105 1\leq N\leq2\times10^5
  • 1K1018 1\leq K\leq10^{18}
  • 1PiN (1iN) 1\leq P_i\leq N\ (1\leq i\leq N)
  • PiPj (1i<jN) P_i\neq P_j\ (1\leq i<j\leq N)
  • 输入均为整数

样例解释 1

每次操作后,P P 的变化如下:

  • 1 1 次操作后,P=(2,4,3,5,6,1) P=(2,4,3,5,6,1)
  • 2 2 次操作后,P=(4,5,3,6,1,2) P=(4,5,3,6,1,2)
  • 3 3 次操作后,P=(6,1,3,2,4,5) P=(6,1,3,2,4,5)

因此,输出 6 1 3 2 4 5

样例解释 2

由于 Pi=i P_i=i ,无论操作多少次,P P 都不会发生变化。

由 ChatGPT 4.1 翻译