#include<bits/stdc++.h>
using namespace std;
#define ll long long
struct node {
ll sum,presum,sufsum,maxsum;
};
vector<node>segtree(1000002);
void build(vector<ll>v,ll low, ll high, ll pos){
if(low>high)return;
if(low==high){
segtree[pos].sum=v[low];
segtree[pos].presum=v[low];
segtree[pos].sufsum=v[low];
segtree[pos].maxsum=v[low];
return;
}
ll mid= (low+high)/2;
build(v,low,mid,2*pos+1);
build(v,mid+1,high,2*pos+2);
segtree[pos].sum=segtree[2*pos+1].sum+segtree[2*pos+2].sum;
segtree[pos].presum=max(segtree[2*pos+1].presum, segtree[2*pos+1].sum+segtree[2*pos+2].presum);
segtree[pos].sufsum=max(segtree[2*pos+2].sufsum,segtree[2*pos+2].sum+segtree[2*pos+1].sufsum);
segtree[pos].maxsum=max(segtree[pos].sufsum,
max(segtree[pos].presum,
max(segtree[2*pos+1].sufsum+segtree[2*pos+2].presum,
max(segtree[2*pos+1].maxsum,segtree[2*pos+2].maxsum))));
}
node query(ll ql , ll qh, ll low , ll high, ll pos){
node result;
result.sum=result.presum=result.sufsum=result.maxsum=INT_MIN;
if(ql>high || qh<low || low>high)return result;
if(low>=ql && high<=qh)return segtree[pos];
ll mid=(low+high)/2;
if (ql > mid)
return query(ql,qh,mid+1,high,2*pos+2);
if (qh <= mid)
return query(ql,qh,low,mid,2*pos+1);
node left=query(ql,qh,low,mid,2*pos+1);
node right=query(ql,qh,mid+1,high,2*pos+2);
result.sum=left.sum+right.sum;
result.presum=max(left.presum, left.sum+right.presum);
result.sufsum=max(right.sufsum,right.sum+left.sufsum);
result.maxsum=max(result.sufsum,
max(result.presum,
max(left.sufsum+right.presum,
max(left.maxsum,right.maxsum))));
return result;
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
ll n,i,q,j;
cin>>n;
vector<ll>v(n);
for(i=0;i<n;i++)cin>>v[i];
build(v,0,n-1,0);
cin>>q;
for(ll k1=0;k1<q;k1++){
ll ql,qh;
cin>>ql>>qh;
node result=query(ql-1,qh-1,0,n-1,0);
cout<< result.maxsum;
if(k1!=q-1)cout<<"\n";
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcKc3RydWN0IG5vZGUgewogICAgbGwgc3VtLHByZXN1bSxzdWZzdW0sbWF4c3VtOwp9Owp2ZWN0b3I8bm9kZT5zZWd0cmVlKDEwMDAwMDIpOwp2b2lkIGJ1aWxkKHZlY3RvcjxsbD52LGxsIGxvdywgbGwgaGlnaCwgbGwgcG9zKXsKICAgIGlmKGxvdz5oaWdoKXJldHVybjsKICAgIGlmKGxvdz09aGlnaCl7CiAgICAgICAgc2VndHJlZVtwb3NdLnN1bT12W2xvd107CiAgICAgICAgc2VndHJlZVtwb3NdLnByZXN1bT12W2xvd107CiAgICAgICAgc2VndHJlZVtwb3NdLnN1ZnN1bT12W2xvd107CiAgICAgICAgc2VndHJlZVtwb3NdLm1heHN1bT12W2xvd107CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgbGwgbWlkPSAobG93K2hpZ2gpLzI7CiAgICBidWlsZCh2LGxvdyxtaWQsMipwb3MrMSk7CiAgICBidWlsZCh2LG1pZCsxLGhpZ2gsMipwb3MrMik7CiAgICBzZWd0cmVlW3Bvc10uc3VtPXNlZ3RyZWVbMipwb3MrMV0uc3VtK3NlZ3RyZWVbMipwb3MrMl0uc3VtOwogICAgc2VndHJlZVtwb3NdLnByZXN1bT1tYXgoc2VndHJlZVsyKnBvcysxXS5wcmVzdW0sIHNlZ3RyZWVbMipwb3MrMV0uc3VtK3NlZ3RyZWVbMipwb3MrMl0ucHJlc3VtKTsKICAgIHNlZ3RyZWVbcG9zXS5zdWZzdW09bWF4KHNlZ3RyZWVbMipwb3MrMl0uc3Vmc3VtLHNlZ3RyZWVbMipwb3MrMl0uc3VtK3NlZ3RyZWVbMipwb3MrMV0uc3Vmc3VtKTsKICAgIHNlZ3RyZWVbcG9zXS5tYXhzdW09bWF4KHNlZ3RyZWVbcG9zXS5zdWZzdW0sCiAgICAgICAgICAgICAgICAgICAgICAgIG1heChzZWd0cmVlW3Bvc10ucHJlc3VtLAogICAgICAgICAgICAgICAgICAgICAgICBtYXgoc2VndHJlZVsyKnBvcysxXS5zdWZzdW0rc2VndHJlZVsyKnBvcysyXS5wcmVzdW0sCiAgICAgICAgICAgICAgICAgICAgICAgIG1heChzZWd0cmVlWzIqcG9zKzFdLm1heHN1bSxzZWd0cmVlWzIqcG9zKzJdLm1heHN1bSkpKSk7CgoKfQpub2RlIHF1ZXJ5KGxsIHFsICwgbGwgcWgsIGxsIGxvdyAsIGxsIGhpZ2gsIGxsIHBvcyl7CiAgICBub2RlIHJlc3VsdDsKICAgIHJlc3VsdC5zdW09cmVzdWx0LnByZXN1bT1yZXN1bHQuc3Vmc3VtPXJlc3VsdC5tYXhzdW09SU5UX01JTjsKICAgIGlmKHFsPmhpZ2ggfHwgcWg8bG93IHx8IGxvdz5oaWdoKXJldHVybiByZXN1bHQ7CiAgICBpZihsb3c+PXFsICYmIGhpZ2g8PXFoKXJldHVybiBzZWd0cmVlW3Bvc107CgogICAgbGwgbWlkPShsb3craGlnaCkvMjsKCiAgICBpZiAocWwgPiBtaWQpIAogICAgICAgIHJldHVybiBxdWVyeShxbCxxaCxtaWQrMSxoaWdoLDIqcG9zKzIpOyAgCiAgICBpZiAocWggPD0gbWlkKSAKICAgICAgICByZXR1cm4gcXVlcnkocWwscWgsbG93LG1pZCwyKnBvcysxKTsgCgogICAgbm9kZSBsZWZ0PXF1ZXJ5KHFsLHFoLGxvdyxtaWQsMipwb3MrMSk7CgogICAgbm9kZSByaWdodD1xdWVyeShxbCxxaCxtaWQrMSxoaWdoLDIqcG9zKzIpOwoKICAgIHJlc3VsdC5zdW09bGVmdC5zdW0rcmlnaHQuc3VtOwoKICAgIHJlc3VsdC5wcmVzdW09bWF4KGxlZnQucHJlc3VtLCBsZWZ0LnN1bStyaWdodC5wcmVzdW0pOwogICAgcmVzdWx0LnN1ZnN1bT1tYXgocmlnaHQuc3Vmc3VtLHJpZ2h0LnN1bStsZWZ0LnN1ZnN1bSk7CiAgICByZXN1bHQubWF4c3VtPW1heChyZXN1bHQuc3Vmc3VtLAogICAgICAgICAgICAgICAgICAgICAgICBtYXgocmVzdWx0LnByZXN1bSwKICAgICAgICAgICAgICAgICAgICAgICAgbWF4KGxlZnQuc3Vmc3VtK3JpZ2h0LnByZXN1bSwKICAgICAgICAgICAgICAgICAgICAgICAgbWF4KGxlZnQubWF4c3VtLHJpZ2h0Lm1heHN1bSkpKSk7CiAgICByZXR1cm4gcmVzdWx0OwoKfQppbnQgbWFpbigpewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwogICAgbGwgbixpLHEsajsKICAgIGNpbj4+bjsKICAgIHZlY3RvcjxsbD52KG4pOwogICAgZm9yKGk9MDtpPG47aSsrKWNpbj4+dltpXTsKICAgIGJ1aWxkKHYsMCxuLTEsMCk7CiAgICBjaW4+PnE7CiAgICBmb3IobGwgazE9MDtrMTxxO2sxKyspewogICAgICAgIGxsIHFsLHFoOwogICAgICAgIGNpbj4+cWw+PnFoOwogICAgICAgIG5vZGUgcmVzdWx0PXF1ZXJ5KHFsLTEscWgtMSwwLG4tMSwwKTsKICAgICAgIGNvdXQ8PCByZXN1bHQubWF4c3VtOwogICAgICAgaWYoazEhPXEtMSljb3V0PDwiXG4iOwogICAgfQoKfQ==