P2582 函数

题目背景

Alice 和 Bob 玩游戏。

题目描述

Alice 给出一个 $1$~$n$ 的排列表示一个函数 $y=f(x)$,即给出的第 $i$ 个数字即为 $f(i)$。 现在 Bob 需要给出一个字典序尽可能小的函数 $y=g(x)$,使得对于任意 $i$,$f(g(i))=g(f(i))$。

输入格式

输出格式

说明/提示

#### 【样例解释】 #### 样例 1 说明 - $g(f(1))=f(g(1))=1$。 - $g(f(2))=f(g(2))=1$。 - $g(f(3))=f(g(3))=1$。 - $g(f(4))=f(g(4))=1$。 - $g(f(5))=f(g(5))=1$。 #### 样例 2 说明 - $g(f(1))=f(g(1))=2$。 - $g(f(2))=f(g(2))=3$。 - $g(f(3))=f(g(3))=4$。 - $g(f(4))=f(g(4))=5$。 - $g(f(5))=f(g(5))=1$。 --- #### 【数据规模与约定】 对于 $30\%$ 的数据,$n \le 5$。 对于 $60\%$ 的数据,$n \le 10^3$。 对于 $100\%$ 的数据,$1 \le n \le 8 \times 10^5$。