//範囲内の最小値を求めよという問題と間違えた。 #include #include #include #include #include #include int maxr=131071; //int maxr=7; using namespace std; map st[270000]; map ms; int f3(int no,int l,int r,int l2,int r2){ int res=(*(st[no].begin())).first; if(r2>n>>q; vector as; for(int i=0;i>a; as.push_back(a); f(0,i,a,0,maxr); ms[a]=i; } for(int i=0;i>e>>l>>r; l--; r--; if(e==1){ f2(0,l,as[l],as[r],0,maxr); f2(0,r,as[r],as[l],0,maxr); ms[as[l]]=r; ms[as[r]]=l; swap(as[l],as[r]); }else{ //cout<