#include<cstdio>
int a,b,c,d,i,j,k;
int req[20005],up[20005],down[20005],target[20005];
int main(){
scanf("%d",&a);
for (i=1;i<=a;i++) {
scanf("%d",&c);
req[c]=i;
}
for (i=1;i<=a;i++) target[i]=1000000000-a+req[i];
up[1]=1;
down[1]=target[1]-up[1];
for (i=2;i<=a;i++){
down[i]=down[i-1]-1;
up[i]=target[i]-down[i];
if (up[i]<=up[i-1]){
c=up[i-1]-up[i]+1;
up[i]+=c;
down[i]-=c;
}
}
for (i=1;i<=a-1;i++) printf("%d ",up[i]);
printf("%d\n",up[a]);
for (i=1;i<=a-1;i++) printf("%d ",down[i]);
printf("%d\n",down[a]);
}
./Main.cpp: In function ‘int main()’:
./Main.cpp:5:16: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d",&a);
^
./Main.cpp:7:17: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d",&c);
^