atcoder#AGC007B. [AGC007B] Construct Sequences

[AGC007B] Construct Sequences

题目描述

集合 {1, 2, ..., N 1,\ 2,\ ...,\ N } の要素を並び替えた順列 p p が与えられます。以下の条件をすべて満たす 2 2 つの正整数列 a1 a_1 , a2 a_2 , ..., aN a_N および b1 b_1 , b2 b_2 , ..., bN b_N を構成してください。

  • すべての i i に対し、1  ai, bi  109 1\ \leq\ a_i,\ b_i\ \leq\ 10^9
  • a1 < a2 < ... < aN a_1\ <\ a_2\ <\ ...\ <\ a_N
  • b1 > b2 > ... > bN b_1\ >\ b_2\ >\ ...\ >\ b_N
  • $ a_{p_1}+b_{p_1}\ <\ a_{p_2}+b_{p_2}\ <\ ...\ <\ a_{p_N}+b_{p_N} $

输入格式

入力は以下の形式で標準入力から与えられる。

N N p1 p_1 p2 p_2 ... ... pN p_N

输出格式

2 2 行出力せよ。1 1 行目に整数列 a1 a_1 , a2 a_2 , ..., aN a_N を、2 2 行目に整数列 b1 b_1 , b2 b_2 , ..., bN b_N を、それぞれ空白区切りで出力せよ。

なお、制約を満たす任意の入力に対して解が存在することが示せる。

题目大意

题意简述

给你一段长度为n的数列P1P_1,P2P_2,,PnP_n. 让你构造两个新的数列a与b,且满足:

  1. 1<aia_i,bib_i<10^9
  2. a1a_1<a2a_2<…<ana_n
  3. b1b_1>b2b_2>…>bnb_n
  4. ap1a_{p_1}+bp1b_{p_1}<ap2a_{p_2}+bp2b_{p_2}<…<apna_{p_n}+bpnb_{p_n} 求出满足条件的数列a,b;

输入格式

两行,第一行为n,第二行为数列P

输出格式

两行,第一行为数列a,第二行为数列b

感谢@该起什么名字 提供的翻译

2
1 2
1 4
5 4
3
3 2 1
1 2 3
5 3 1
3
2 3 1
5 10 100
100 10 1

提示

制約

  • 2  N  20,000 2\ \leq\ N\ \leq\ 20,000
  • p p は集合 {1, 2, ..., N 1,\ 2,\ ...,\ N } の要素を並び替えた順列である。

Sample Explanation 1

a1 + b1 = 6 a_1\ +\ b_1\ =\ 6 および a2 + b2 = 8 a_2\ +\ b_2\ =\ 8 より、すべての条件が満たされています。