Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<iostream>#include<cstdio>#include<cstring>#include<queue>#include<map>#include<stack>#include<algorithm>#include<string>#define LL long long#define LD long double#define eps 1e-7#define inf 1<<30#define MOD 1000000007#define N 200005using namespace std;struct MergeTree{int left,right,mid;}tree[N*4];int num[N],mer[20][N];int n,q;void create(int step,int l,int r,int deep){tree[step].left=l;tree[step].right=r;tree[step].mid=(l+r)>>1;if(l==r){mer[deep][l]=num[l];return;}create(step<<1,l,(l+r)/2,deep+1);create((step<<1)|1,(l+r)/2+1,r,deep+1);int i=l,j=(l+r)/2+1,p=l;