#include<bits/stdc++.h> using namespace std; #define int long long const int N=4e6+10; const int M=3e4+3e3; int n,t,m; char c; int a[N],max_a[N],min_a[N],sum1[N],sum2[N]; void push(int x) { max_a[x]=max(max_a[x<<1],max_a[x<<1|1]); min_a[x]=min(min_a[x<<1],min_a[x<<1|1]); sum1[x]=sum1[x*2]+sum1[x*2+1]; } void build(int l,int r,int k) { if(l==r) { max_a[k]=a[l]; min_a[k]=max_a[k]; } else { int mid=(l+r)/2; build(l,mid,k*2); build(mid+1,r,k*2+1); push(k); } } int query1(int x,int y ,int k,int l,int r)//求取最大值 { if(x<=l&&y>=r) return max_a[k]; int mid=(l+r)/2; int ans=-0x7f7f7f7f; if(x<=mid) ans=max(ans,query1(x,y,k*2,l,mid)); if(y>mid) ans=max(ans,query1(x,y,k*2+1,mid+1,r)); return ans; } int query2(int x,int y ,int k,int l,int r)//求取最小值 { if(x<=l&&y>=r) ret