//#pragma GCC optimize("Ofast") //#pragma GCC target("avx2") #include #include #include #include #define rep(v,e) for(typeof(e)v=0;v=0)_v=_v*10+_c; return _v; } static inline void wt(int v){ unsigned _z=v,_n=0; long _d=0; while(++_n,_d=_d<<8|0x30|_z%10,_z/=10); *(long*)wp=_d; wp+=_n; } int main(){ rp=static_cast(mmap(0,1<<25,1,2,0,0)); wp=wbuf; std::mapm; int n=rd(); m[0]=-1; m[n+1]=-1; rep(k,n){ int a=rd(); auto i=m.upper_bound(a); auto j=prev(i); int d=std::max(i->second,j->second)+1; wt(d); *wp++=' '; m[a]=d; c[k]=i->first-j->first-2; } wp[-1]='\n'; rep(k,n){ wt(c[k]); *wp++=' '; } wp[-1]='\n'; write(1,wbuf,wp-wbuf); _exit(0); }