#include<bits/stdc++.h>
using namespace std;
int buildTree(int v,int* segmentTree,int* a,int l,int r)
{
if(l>r)
return -150007;
if(l == r)
{
// cout<<"l==r :"<<l<<endl;
// cout<<"segmentTree[v] : "<<segmentTree[v]<<"a[l] : "<<a[l]<<endl;
segmentTree[v]=a[l];
return a[l] ;
}
int mid = (l+r)/2;
int left = buildTree(2*v,segmentTree,a,l,mid);
int right = buildTree(2*v+1,segmentTree,a,mid+1,r);
segmentTree[v] = max(left,right);
}
int maxInRange(int v,int* segmentTree,int l,int r,int lg,int rg)
{
if(l>r || lg > rg)
return -150007 ;// min val
if(l == lg && r==rg)
{
return segmentTree[v];
}
int mid = (l+r)/2;
int left = maxInRange(2*v,segmentTree,l,mid,lg,min(mid,rg));
int right = maxInRange(2*v+1,segmentTree,mid+1,r,max(mid+1,lg),rg);
//cout<<"left : "<<left<<"right : "<<right<<endl;
return max(left,right);
}
int main()
{
int n;
cin>>n;
int a[n+50];
for(int i=1;i<=n;i++)
cin>>a[i];
int m;
cin>>m;
int segmentTree[4*n+50]={0};
// build segment tree
// for(int i=1;i<=4*n;i++)
// cout<<segmentTree[i]<<" ";
// cout<<endl;
buildTree(1,segmentTree,a,1,n);
// for(int i=1;i<=4*n;i++)
// cout<<segmentTree[i]<<" ";
// cout<<endl;
while(m--)
{
int l,r;
cin>>l>>r;
cout<<maxInRange(1,segmentTree,1,n,l,r)<<endl;
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IGJ1aWxkVHJlZShpbnQgdixpbnQqIHNlZ21lbnRUcmVlLGludCogYSxpbnQgbCxpbnQgcikKewoJaWYobD5yKQoJCXJldHVybiAtMTUwMDA3OwoJaWYobCA9PSByKQoJewkKCS8vCWNvdXQ8PCJsPT1yIDoiPDxsPDxlbmRsOwoJLy8JY291dDw8InNlZ21lbnRUcmVlW3ZdIDogIjw8c2VnbWVudFRyZWVbdl08PCJhW2xdIDogIjw8YVtsXTw8ZW5kbDsKCQlzZWdtZW50VHJlZVt2XT1hW2xdOwoJCXJldHVybiBhW2xdIDsKCX0KCWludCBtaWQgPSAobCtyKS8yOwoJaW50IGxlZnQgPSBidWlsZFRyZWUoMip2LHNlZ21lbnRUcmVlLGEsbCxtaWQpOwoJaW50IHJpZ2h0ID0gYnVpbGRUcmVlKDIqdisxLHNlZ21lbnRUcmVlLGEsbWlkKzEscik7CglzZWdtZW50VHJlZVt2XSA9IG1heChsZWZ0LHJpZ2h0KTsKCn0KaW50IG1heEluUmFuZ2UoaW50IHYsaW50KiBzZWdtZW50VHJlZSxpbnQgbCxpbnQgcixpbnQgbGcsaW50IHJnKQp7CglpZihsPnIgfHwgbGcgPiByZykKCQlyZXR1cm4gLTE1MDAwNyA7Ly8gbWluIHZhbAoJaWYobCA9PSBsZyAmJiByPT1yZykKCXsKCQlyZXR1cm4gc2VnbWVudFRyZWVbdl07Cgl9CglpbnQgbWlkID0gKGwrcikvMjsKCQoJaW50IGxlZnQgPSBtYXhJblJhbmdlKDIqdixzZWdtZW50VHJlZSxsLG1pZCxsZyxtaW4obWlkLHJnKSk7CglpbnQgcmlnaHQgPSBtYXhJblJhbmdlKDIqdisxLHNlZ21lbnRUcmVlLG1pZCsxLHIsbWF4KG1pZCsxLGxnKSxyZyk7CgkvL2NvdXQ8PCJsZWZ0IDogIjw8bGVmdDw8InJpZ2h0IDogIjw8cmlnaHQ8PGVuZGw7CglyZXR1cm4gbWF4KGxlZnQscmlnaHQpOwp9CmludCBtYWluKCkKewoJaW50IG47CgljaW4+Pm47CglpbnQgYVtuKzUwXTsKCWZvcihpbnQgaT0xO2k8PW47aSsrKQoJCWNpbj4+YVtpXTsKCWludCBtOwoJY2luPj5tOwoJaW50IHNlZ21lbnRUcmVlWzQqbis1MF09ezB9OwoJLy8gYnVpbGQgc2VnbWVudCB0cmVlCgkvLyBmb3IoaW50IGk9MTtpPD00Km47aSsrKQoJLy8gCWNvdXQ8PHNlZ21lbnRUcmVlW2ldPDwiICI7CgkvLyBjb3V0PDxlbmRsOwoJYnVpbGRUcmVlKDEsc2VnbWVudFRyZWUsYSwxLG4pOwoJLy8gZm9yKGludCBpPTE7aTw9NCpuO2krKykKCS8vIAljb3V0PDxzZWdtZW50VHJlZVtpXTw8IiAiOwoJLy8gY291dDw8ZW5kbDsKCXdoaWxlKG0tLSkKCXsKCQlpbnQgbCxyOwoJCWNpbj4+bD4+cjsKCQljb3V0PDxtYXhJblJhbmdlKDEsc2VnbWVudFRyZWUsMSxuLGwscik8PGVuZGw7Cgl9CglyZXR1cm4gMDsKfQ==