RT
#include <bits/stdc++.h>
using namespace std;
int n;
struct zdq{
long long a;
int num;
}a[100005];
int nxt[2][100005][20];
long long l[2][2][100005][20];
struct lian{
int l,r;
}ln[100005];
bool cmp(zdq x,zdq y)
{
return x.a<y.a;
}
bool cmp2(zdq x,zdq y)
{
return x.num<y.num;
}
long long L(int i,int j,int k)
{
return l[i][i][j][k]+l[i][i^1][j][k];
}
pair<long long,long long> getl(long long now,long long k)
{
long long la=0,lb=0;
for(int i=19;i>=0;i--){
if(nxt[1][now][i] && la+lb+l[1][0][now][i]+l[1][1][now][i]<=k){
la+=l[1][1][now][i];
lb+=l[1][0][now][i];
now=nxt[1][now][i];
}
}
if(nxt[1][now][0]&&la+lb+l[1][1][now][0]<=k)
la+=l[1][1][now][0];
return {la,lb};
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].a ;
a[i].num=i;
}
sort(a+1,a+n+1,cmp);
for(int i=n;i>=1;i--)
{
ln[a[i].num ].l=a[i-1].num ;
ln[a[i].num ].r=a[i+1].num ;
}
sort(a+1,a+n+1,cmp2);
a[0].a=-1e18,a[n+1].a=1e18;
l[0][0][0][0]=l[0][1][0][0]=l[1][0][0][0]=l[1][1][0][0]=1e18;
for(int i=1;i<=n;i++)
{
//cout<<a[i].num<<" "<<a[i].a<<" "<<ln[i].l<<" "<<ln[i].r<<endl;
if(a[ln[i].r].a-a[i].a<a[i].a-a[ln[i].l ].a )
{
nxt[0][i][0]=ln[i].r;
if(a[ln[ln[i].r ].r ].a -a[i].a<a[i].a-a[ln[i].l ].a &&ln[ln[i].r ].r )
nxt[1][i][0]=ln[ln[i].r ].r;
else
nxt[1][i][0]=ln[i].l;
}
else
{
nxt[0][i][0]=ln[i].l;
if(a[i].a-a[ln[ln[i].l ].l ].a<=a[ln[i].r].a-a[i].a &&ln[ln[i].l ].l )
nxt[1][i][0]=ln[ln[i].l ].l;
else
nxt[1][i][0]=ln[i].r;
}
ln[ln[i].l ].r=ln[i].r;
ln[ln[i].r ].l=ln[i].l;
if(nxt[0][i][0]==i)
nxt[0][i][0]=0;
if(nxt[1][i][0]==i)
nxt[1][i][0]=0;
l[0][0][i][0]=abs(a[i].a-a[nxt[0][i][0]].a );
l[1][1][i][0]=abs(a[i].a-a[nxt[1][i][0]].a );
l[0][1][i][0]=l[1][0][i][0]=1e18;
//cout<<nxt[0][i][0]<<" "<<nxt[1][i][0]<<endl;
}
for(int i=0;i<=n;i++)
{
nxt[0][i][1]=nxt[1][nxt[0][i][0]][0],nxt[1][i][1]=nxt[0][nxt[1][i][0]][0];
l[0][1][i][1]=l[1][1][nxt[0][i][0]][0];
l[0][0][i][1]=l[0][0][i][0];
l[1][0][i][1]=l[0][0][nxt[1][i][0]][0];
l[1][1][i][1]=l[1][1][i][0];
}
for(int i=2;i<20;i++)
{
for(int j=0;j<=n;j++)
{
for(int k=0;k<=1;k++)
{
nxt[k][j][i]=nxt[k][nxt[k][j][i-1]][i-1];
l[k][k][j][i]=l[k][k][j][i-1]+l[k][k][nxt[k][j][i-1]][i-1];
l[k][k^1][j][i]=l[k][k^1][j][i-1]+l[k][k^1][nxt[k][j][i-1]][i-1];
}
}
}/*
for(int j=0;j<=n;j++)
{
for(int k=0;k<5;k++)
{
cout<<nxt[0][j][k]<<"/"<<nxt[1][j][k]<<" ";
}
cout<<endl;
}
for(int j=0;j<=n;j++)
{
for(int k=0;k<5;k++)
{
if(l[0][0][j][k]<1e8)
cout<<l[0][0][j][k];
else
cout<<"INF";
cout<<"/";
if(l[0][1][j][k]<1e8)
cout<<l[0][1][j][k];
else
cout<<"INF";
cout<<"/";
if(l[1][0][j][k]<1e8)
cout<<l[1][0][j][k];
else
cout<<"INF";
cout<<"/";
if(l[1][1][j][k]<1e8)
cout<<l[1][1][j][k];
else
cout<<"INF";
cout<<" ";
}
cout<<endl;
}*/
long long x;
cin>>x;
long long ans;
long double sum=1e18;
for(int i=1;i<=n;i++)
{
long double la=getl(i,x).first,lb=getl(i,x).second;
if(lb<=1e-5&&lb>=-1e-5)
{
la=1e18,lb=1;
}
if(la/lb<sum)
{
sum=la/lb;
ans=i;
}
}
cout<<ans<<endl;
int m;
cin>>m;
for(int i=1;i<=m;i++)
{
long long s;
cin>>s>>x;
long long la=getl(s,x).first,lb=getl(s,x).second;
cout<<la<<" "<<lb<<endl;
}
return 0;
}