#include<iostream>
#include<cstdio>
using namespace std;
#define inf 0x7fffffff
int arr[500000]; //WHY WE DEFINE IT GLOBALLLY
int segtree[500000]; //WHY WE DEFINE IT GLOBALLY
void constructtree(int low,int high,int pos);
int rangemaxquery(int qlow,int qhigh,int low,int high,int pos);
int main()
{
int m,xi,yi,y;
long long int n,i;
cin>>n;
for(i=1;i<=n;i++)
{
scanf("%d",&arr[i]);
// cin>>arr[i];
}
scanf("%d",&m);
//cin>>m;
constructtree(1,i,1);
while(m--)
{
scanf("%d%d",&xi,&yi);
//cin>>xi>>yi;
y=rangemaxquery(xi,yi,1,i,1);
printf("%d\n",y);
// cout<<y<<"\n";
}
return 0;
}
void constructtree(int low,int high,int pos)
{
if (low==high)
{
segtree[pos]=arr[low];
return ;
}
int mid=(low+high)/2;
constructtree(low,mid,2*pos+1);
constructtree(mid+1,high,2*pos+2);
segtree[pos]=max(segtree[2*pos+1],segtree[2*pos+2]);
}
int rangemaxquery(int qlow,int qhigh,int low,int high,int pos)
{
if(qlow<=low&&qhigh>=high)
return segtree[pos];
if(qlow>high||qhigh<low)
return -inf;//don't know
int mid=(low+high)/2;
return max(rangemaxquery(qlow,qhigh,low,mid,2*pos+1),rangemaxquery(qlow,qhigh,mid+1,high,2*pos+2));
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGNzdGRpbz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBpbmYgMHg3ZmZmZmZmZgppbnQgYXJyWzUwMDAwMF07ICAgLy9XSFkgV0UgREVGSU5FIElUIEdMT0JBTExMWQppbnQgc2VndHJlZVs1MDAwMDBdOyAgIC8vV0hZIFdFIERFRklORSBJVCBHTE9CQUxMWQp2b2lkIGNvbnN0cnVjdHRyZWUoaW50IGxvdyxpbnQgaGlnaCxpbnQgcG9zKTsKaW50IHJhbmdlbWF4cXVlcnkoaW50IHFsb3csaW50IHFoaWdoLGludCBsb3csaW50IGhpZ2gsaW50IHBvcyk7CgppbnQgbWFpbigpCiAgIHsKICAgaW50IG0seGkseWkseTsKICAgbG9uZyBsb25nIGludCBuLGk7CiAgIGNpbj4+bjsKICAgZm9yKGk9MTtpPD1uO2krKykKICAgICB7CiAgICAgICAgIHNjYW5mKCIlZCIsJmFycltpXSk7CiAgICAgIC8vIGNpbj4+YXJyW2ldOwogICAgIH0KICAgICBzY2FuZigiJWQiLCZtKTsKICAvL2Npbj4+bTsKICBjb25zdHJ1Y3R0cmVlKDEsaSwxKTsKICB3aGlsZShtLS0pCiAgICAgewogICAgICAgICBzY2FuZigiJWQlZCIsJnhpLCZ5aSk7CiAgICAvL2Npbj4+eGk+PnlpOwogICAgICB5PXJhbmdlbWF4cXVlcnkoeGkseWksMSxpLDEpOwogICAgICBwcmludGYoIiVkXG4iLHkpOwogICAgIC8vIGNvdXQ8PHk8PCJcbiI7CiAgICAgfQpyZXR1cm4gMDsKICAgfQoKCnZvaWQgY29uc3RydWN0dHJlZShpbnQgbG93LGludCBoaWdoLGludCBwb3MpCiAgICB7CiAgICBpZiAobG93PT1oaWdoKQogICAgICB7CiAgICAgIHNlZ3RyZWVbcG9zXT1hcnJbbG93XTsKICAgICAgcmV0dXJuIDsKCiAgICAgIH0KICAgIGludCBtaWQ9KGxvdytoaWdoKS8yOwoKICAgIGNvbnN0cnVjdHRyZWUobG93LG1pZCwyKnBvcysxKTsKICAgIGNvbnN0cnVjdHRyZWUobWlkKzEsaGlnaCwyKnBvcysyKTsKICAgIHNlZ3RyZWVbcG9zXT1tYXgoc2VndHJlZVsyKnBvcysxXSxzZWd0cmVlWzIqcG9zKzJdKTsKCiAgICB9CgppbnQgcmFuZ2VtYXhxdWVyeShpbnQgcWxvdyxpbnQgcWhpZ2gsaW50IGxvdyxpbnQgaGlnaCxpbnQgcG9zKQogICB7CiAgICAgICBpZihxbG93PD1sb3cmJnFoaWdoPj1oaWdoKQogICAgICAgIHJldHVybiBzZWd0cmVlW3Bvc107CgogICAgICAgaWYocWxvdz5oaWdofHxxaGlnaDxsb3cpCiAgICAgICAgcmV0dXJuIC1pbmY7Ly9kb24ndCBrbm93CgogICAgICAgIGludCBtaWQ9KGxvdytoaWdoKS8yOwoKICAgICAgICByZXR1cm4gbWF4KHJhbmdlbWF4cXVlcnkocWxvdyxxaGlnaCxsb3csbWlkLDIqcG9zKzEpLHJhbmdlbWF4cXVlcnkocWxvdyxxaGlnaCxtaWQrMSxoaWdoLDIqcG9zKzIpKTsKICAgfQo=