#P5754. [JSOI2010] 排名

[JSOI2010] 排名

Description

给定一个长度为 NN 的数列 AA,其中 AiA_i 表示第 ii 个同学的分数比第 AiA_i 个同学的分数低(或者说,第 ii 个同学的排名在第 AiA_i 个同学之后)。当然,AiA_i 有可能等于 00,则表明没有关于第 ii 个同学的信息。

你需要得到一个长度为 NN 的数列 HH,表示班上同学的排名。这个排名要求是满足所有 AiA_i 构成的约束的排名中字典序最小的哪一个。

同时,你还需要得到一个数列 XX,表示班上同学的排名。这个排名要求是满足所有 AiA_i 构成的约束的排名中字典序最大的哪一个。

Input Format

11 行一个正整数 NN,表示班上同学的个数。

22 行包含 NN 个用空格隔开的非负整数,第 ii 个数表示 AiA_i

Output Format

两行,每行 NN 个正整数,用空格隔开。其中,第 11 行为小 L 的心理排名,第 22 行为小 X 的心理排名。

4
3 0 2 2
3 1 2 4
4 1 3 2

Hint

样例解释

共有 33 种排名满足大小关系:

4 1 3 2
4 1 2 3
3 1 2 4

其中,3 1 2 4 字典序最小,4 1 3 2 字典序最大。

数据范围

对于 10%10\% 的数据,N10N\leq 10

对于 20%20\% 的数据,N20N\leq 20

对于 40%40\% 的数据,N2×103N\leq 2\times 10^3

对于 100%100\% 的数据,1N2×105,AiN1 \leq N\leq 2\times 10^5,A_i\leq N。其中,第 55 组数据保证 N=1.2×104N=1.2\times 10^4