U392533 置换的“循环节”

题目描述

$N$ 个数的全排列有 $N!$ 种,比如 5 个数的排列有 $5!=120$ 种。但是,前面的置换`( 3 4 5 2 1 )` 我们看到,置换 6次后,数列就还原了。 显然,置换 ( 3 4 5 2 1 ) 只能得到 6 个不同的排列,或称这个置换的周期是 6 。 当$N$比较大时,周期有可能会很大! 为了研究这个问题,数学家先简化问题:研究单独一个“数”的周期! 例如置换 ( 3 4 5 2 1 ) ,各个数的周期分别是:`3 2 3 2 3`。 原始数列 1 2 3 4 5 第1次置换后 5 4 1 2 3 第2次置换后 3 2 5 4 1 第3次置换后 1 4 3 2 5 第4次置换后 5 2 1 4 3 第5次置换后 3 4 5 2 1 第6次置换后 1 2 3 4 5 … 因此数字 $1$ 的位置变化为: $1—3—5—1—3—5—1…$ 显然数字 $1$ 的周期就是 $3$。 数字 2 的位置变化为: $2—4—2—4—2—4…$ 显然数字 $2$ 的周期就是 $2$。 数字 $3$的位置变化为: $3—5—1—3—5—1—3…$ 显然数字 $3$的周期就是 $3$ 。 数字 $4$ 的位置变化为: $4—2—4—2—4—2…$ 显然数字 $4$ 的周期就是 $2$ 。 … 结论:各个数的周期分别是:3 2 3 2 3。

输入格式

第一行: $1$ 个正整数: $N$ ,范围在$[1,100]$,表示字符串长度。 第二行:有 $N$ 个整数,为 $1$ 到 $N$ 的一个全排列,表示一个置换。

输出格式

一行, $N$个数。第 $i$ 个数表示原数列第 $i$ 个数经过多少次又变化回来。