#agc007b. [agc007_b]Construct Sequences

[agc007_b]Construct Sequences

问题描述

给定一个集合 {1,2,...,N1, 2, ..., N} 的排列 pp。请构造两个正整数序列 a1a_1, a2a_2, ..., aNa_Nb1b_1, b2b_2, ..., bNb_N,满足以下条件:

  • 对于所有 ii1ai,bi1091 \leq a_i, b_i \leq 10^9
  • a1<a2<...<aNa_1 < a_2 < ... < a_N
  • b1>b2>...>bNb_1 > b_2 > ... > b_N
  • $a_{p_1}+b_{p_1} < a_{p_2}+b_{p_2} < ... < a_{p_N}+b_{p_N}$

约束条件

  • 2N20,0002 \leq N \leq 20,000
  • pp 是集合 {1,2,...,N1, 2, ..., N} 的排列

输入

输入数据从标准输入读取,格式如下:

NN p1p_1 p2p_2 ...... pNp_N

输出

输出共两行。第一行包含由空格分隔的 a1a_1, a2a_2, ..., aNa_N。第二行包含由空格分隔的 b1b_1, b2b_2, ..., bNb_N

可以证明,对于任何满足约束条件的输入,总是存在一个解。


样例输入 1

2
1 2

样例输出 1

1 4
5 4

a1+b1=6a_1 + b_1 = 6a2+b2=8a_2 + b_2 = 8。因此,这个输出满足所有条件。


样例输入 2

3
3 2 1

样例输出 2

1 2 3
5 3 1

样例输入 3

3
2 3 1

样例输出 3

5 10 100
100 10 1