正片:
[code]namespace jser{ random_device rd; long long sed=rd(); mt19937 rad(time((time_t*)&sed)); il long long getrand(long long x,long long y) { return rad()%(y-x+1)+x; } struct Treap { #define N 200002 int root,cnt; int val[N],siz[N],pri[N],lson[N],rson[N]; il void pushup(int x) { siz[x]=siz[lson[x]]+siz[rson[x]]+1; } il int merge(int x,int y) { if(!x||!y) { return x|y; } if(pri[x]