#2088. 序列还原

序列还原

题目描述

给定一个长度为 nn 的排列, 可以用这个排列定义一个变换。 该变换作用于一个长度为 nn 的序列, 在原序列第 ii 号位置的数字, 经过变换后将被移动到第 fif_{i}号位置。 由于 f1f2.....fnf_{1}f_{2}.....f_{n}是一个排列, 所以其中不会出现两个数字去同一个位置的问题。

现在假设一个序列经过k k 次这样的变换后, 变成了一个最简单的状态:1,2,3.....n1,2,3.....n, 请还原该序列在变换之前的状态。

输入格式

第一行: 两个整数 nnk k

第二行: n 个整数表示 f1f2.....fnf_{1},f_{2},.....,f_{n}

输出格式

单独一行: nn 个正整数, 表示还原后原始的序列

样例

8 5
7 8 6 2 1 5 4 3
3 1 4 5 8 2 6 7

样例解释

  • 初始状态序列:1 2 3 4 5 6 7 8
  • 第一次还原后序列:7 8 6 2 1 5 4 3
  • 第二次还原后序列:4 3 5 8 7 1 2 6
  • 第三次还原后序列:2 6 1 3 4 7 8 5
  • 第四次还原后序列:8 5 7 6 2 4 3 1
  • 第五次还原后序列:3 1 4 5 8 2 6 7

数据范围

  • 对于 50%的数据, n1000n\leqslant 1000
  • 对于 100%的数据, 1n105,1k101\leqslant n\leqslant 10^{5},1\le k \le 10

来源

  • 上海计算机学会竞赛平台2021年1月月赛 丙组 T5