#include #include #define maxn 100005 #define Lson (k<<1) #define Rson (k<<1)|1 #define inf 0x3f3f3f3f using namespace std; int n; int a[maxn]; int aint[maxn*4]; int sol; void read() { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); } void build(int k,int left,int right) { if(left==right) {aint[k]=a[left]; return;} int mid=(left+right)/2; build(Lson,left,mid); build(Rson,mid+1,right); aint[k]=max(aint[Lson],aint[Rson]); } void query(int k,int left,int right, int x,int y) { if( x<=left && right<=y ) { sol=max(sol,aint[k]); return; } int mid=(left+right)/2; if(x<=mid) query(Lson,left,mid,x,y); if(y>mid) query(Rson,mid+1,right,x,y); } void solve() { int cnt=-inf; for(int i=1;i