#include<iostream>
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=0;i<n;i++)
{
cin>>arr[i];
}
cin>>m;
constructtree(0,i,0);
while(m--)
{
cin>>xi>>yi;
y=rangemaxquery(xi,yi,0,i,0);
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));}
ICNpbmNsdWRlPGlvc3RyZWFtPgogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKICNkZWZpbmUgaW5mIDB4N2ZmZmZmZmYKIGludCBhcnJbNTAwMDAwXTsgICAvL1dIWSBXRSBERUZJTkUgSVQgR0xPQkFMTExZCiBpbnQgc2VndHJlZVs1MDAwMDBdOyAgIC8vV0hZIFdFIERFRklORSBJVCBHTE9CQUxMWQogdm9pZCBjb25zdHJ1Y3R0cmVlKGludCBsb3csaW50IGhpZ2gsaW50IHBvcyk7CiBpbnQgcmFuZ2VtYXhxdWVyeShpbnQgcWxvdyxpbnQgcWhpZ2gsaW50IGxvdyxpbnQgaGlnaCxpbnQgcG9zKTsKCiBpbnQgbWFpbigpCiB7CiBpbnQgbSx4aSx5aSx5OwogbG9uZyBsb25nIGludCBuLGk7CiBjaW4+Pm47CiBmb3IoaT0wO2k8bjtpKyspCiAgewogICBjaW4+PmFycltpXTsKICB9CiBjaW4+Pm07CiBjb25zdHJ1Y3R0cmVlKDAsaSwwKTsKIHdoaWxlKG0tLSkKICB7CiAgY2luPj54aT4+eWk7CiAgeT1yYW5nZW1heHF1ZXJ5KHhpLHlpLDAsaSwwKTsKICBjb3V0PDx5PDwiXG4iOwogIH0KIHJldHVybiAwOwogfQoKICB2b2lkIGNvbnN0cnVjdHRyZWUoaW50IGxvdyxpbnQgaGlnaCxpbnQgcG9zKQogIHsKICBpZiAobG93PT1oaWdoKQogICB7CiAgIHNlZ3RyZWVbcG9zXT1hcnJbbG93XTsKICAgcmV0dXJuIDsKCiAgIH0KICAgaW50IG1pZD0obG93K2hpZ2gpLzI7CgogICAgY29uc3RydWN0dHJlZShsb3csbWlkLDIqcG9zKzEpOwogICAgY29uc3RydWN0dHJlZShtaWQrMSxoaWdoLDIqcG9zKzIpOwogICAgc2VndHJlZVtwb3NdPW1heChzZWd0cmVlWzIqcG9zKzFdLHNlZ3RyZWVbMipwb3MrMl0pOwoKICAgIH0KCiAgIGludCByYW5nZW1heHF1ZXJ5KGludCBxbG93LGludCBxaGlnaCxpbnQgbG93LGludCBoaWdoLGludCBwb3MpCiAgICB7CiAgICAgaWYocWxvdzw9bG93JiZxaGlnaD49aGlnaCkKICAgICAgcmV0dXJuIHNlZ3RyZWVbcG9zXTsKCiAgICAgaWYocWxvdz5oaWdofHxxaGlnaDxsb3cpCiAgICAgcmV0dXJuIC1pbmY7Ly9kb24ndCBrbm93CgogICAgaW50IG1pZD0obG93K2hpZ2gpLzI7CiAgICByZXR1cm4gICAgICAgbWF4KHJhbmdlbWF4cXVlcnkocWxvdyxxaGlnaCxsb3csbWlkLDIqcG9zKzEpLHJhbmdlbWF4cXVlcnkocWxvdyxxaGlnaCxtaWQrMSxoaWdoLDIqcG9zKzIpKTt9