#include<bits/stdc++.h>
using namespace std;
struct quer { int l,r,pos; };
const int MAXN=3e5+5;
const int INF=1e9;
const int sqr=400;
int nex[MAXN],prv[MAXN],num[MAXN],pos[MAXN],V[MAXN],ans[MAXN],dp[sqr+5][MAXN],f[MAXN];
map<int,int> mp;
vector<quer> vi[MAXN/sqr+5];
int n,q;
bool sortq(quer a,quer b) { return a.r>b.r; }
int add(int x)
{
int ans=INF;
if(prv[x]>=1) ans=min(ans,V[x]-V[prv[x]]);
if(nex[x]<=n) ans=min(ans,V[nex[x]]-V[x]);
nex[prv[x]]=x,prv[nex[x]]=x;
return ans;
}
void del(int x) { nex[prv[x]]=nex[x],prv[nex[x]]=prv[x]; }
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++) { cin>>num[i];V[i]=num[i]; }
sort(V+1,V+n+1);
V[0]=-INF,V[n+1]=INF*2;
for(int i=1;i<=n;i++) pos[i]=lower_bound(V+1,V+n+1,num[i])-V+(mp[lower_bound(V+1,V+n+1,num[i])-V]++);
cin>>q;
for(int i=1;i<=q;i++) { int l,r;cin>>l>>r;vi[(l-1)/sqr].push_back({l,r,i}); }
for(int i=0;i<=n/sqr;i++) sort(vi[i].begin(),vi[i].end(),sortq);
for(int i=1;i<=min(sqr,n);i++)
{
if(i==1) { for(int j=1;j<=n;j++) dp[i][j]=INF; }
else for(int j=1;j<=n-i+1;j++) dp[i][j]=min(min(dp[i-1][j],dp[i-1][j+1]),abs(num[j]-num[j+i-1]));
}
for(int i=0;i*sqr<=n;i++)
{
int l=i*sqr+1,r=min(n,(i+1)*sqr),p=n;
f[r]=INF;
for(int j=0;j<=n+1;j++) prv[j]=j-1,nex[j]=j+1;
for(int j=1;j<r;j++) del(pos[j]);
for(int j=n;j>r;j--) del(pos[j]);
for(int j=r+1;j<=n;j++) f[j]=min(f[j-1],add(pos[j]));
for(int j=r-1;j>=l;j--) add(pos[j]);
for(auto v:vi[i])
{
if(v.r-v.l+1<=sqr) { ans[v.pos]=dp[v.r-v.l+1][v.l];continue; }
ans[v.pos]=f[v.r];
while(p>v.r) del(pos[p--]);
for(int j=l;j<r;j++) del(pos[j]);
for(int j=r-1;j>=v.l;j--) ans[v.pos]=min(ans[v.pos],add(pos[j]));
for(int j=v.l-1;j>=l;j--) add(pos[j]);
}
}
for(int i=1;i<=q;i++) cout<<ans[i]<<"\n";
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKc3RydWN0IHF1ZXIgeyBpbnQgbCxyLHBvczsgfTsKY29uc3QgaW50IE1BWE49M2U1KzU7CmNvbnN0IGludCBJTkY9MWU5Owpjb25zdCBpbnQgc3FyPTQwMDsKaW50IG5leFtNQVhOXSxwcnZbTUFYTl0sbnVtW01BWE5dLHBvc1tNQVhOXSxWW01BWE5dLGFuc1tNQVhOXSxkcFtzcXIrNV1bTUFYTl0sZltNQVhOXTsKbWFwPGludCxpbnQ+IG1wOwp2ZWN0b3I8cXVlcj4gdmlbTUFYTi9zcXIrNV07CmludCBuLHE7CmJvb2wgc29ydHEocXVlciBhLHF1ZXIgYikgeyByZXR1cm4gYS5yPmIucjsgfQppbnQgYWRkKGludCB4KQp7CiAgICBpbnQgYW5zPUlORjsKICAgIGlmKHBydlt4XT49MSkgYW5zPW1pbihhbnMsVlt4XS1WW3Bydlt4XV0pOwogICAgaWYobmV4W3hdPD1uKSBhbnM9bWluKGFucyxWW25leFt4XV0tVlt4XSk7CiAgICBuZXhbcHJ2W3hdXT14LHBydltuZXhbeF1dPXg7CiAgICByZXR1cm4gYW5zOwp9CnZvaWQgZGVsKGludCB4KSB7IG5leFtwcnZbeF1dPW5leFt4XSxwcnZbbmV4W3hdXT1wcnZbeF07IH0KaW50IG1haW4oKQp7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7CiAgICBjb3V0LnRpZSgwKTsKICAgIGNpbj4+bjsKICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKSB7IGNpbj4+bnVtW2ldO1ZbaV09bnVtW2ldOyB9CiAgICBzb3J0KFYrMSxWK24rMSk7CiAgICBWWzBdPS1JTkYsVltuKzFdPUlORioyOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspIHBvc1tpXT1sb3dlcl9ib3VuZChWKzEsVituKzEsbnVtW2ldKS1WKyhtcFtsb3dlcl9ib3VuZChWKzEsVituKzEsbnVtW2ldKS1WXSsrKTsKICAgIGNpbj4+cTsKICAgIGZvcihpbnQgaT0xO2k8PXE7aSsrKSB7IGludCBsLHI7Y2luPj5sPj5yO3ZpWyhsLTEpL3Nxcl0ucHVzaF9iYWNrKHtsLHIsaX0pOyB9CiAgICBmb3IoaW50IGk9MDtpPD1uL3NxcjtpKyspIHNvcnQodmlbaV0uYmVnaW4oKSx2aVtpXS5lbmQoKSxzb3J0cSk7CiAgICBmb3IoaW50IGk9MTtpPD1taW4oc3FyLG4pO2krKykKICAgIHsKICAgICAgICBpZihpPT0xKSB7IGZvcihpbnQgaj0xO2o8PW47aisrKSBkcFtpXVtqXT1JTkY7IH0KICAgICAgICBlbHNlIGZvcihpbnQgaj0xO2o8PW4taSsxO2orKykgZHBbaV1bal09bWluKG1pbihkcFtpLTFdW2pdLGRwW2ktMV1baisxXSksYWJzKG51bVtqXS1udW1baitpLTFdKSk7CiAgICB9CiAgICBmb3IoaW50IGk9MDtpKnNxcjw9bjtpKyspCiAgICB7CiAgICAgICAgaW50IGw9aSpzcXIrMSxyPW1pbihuLChpKzEpKnNxcikscD1uOwogICAgICAgIGZbcl09SU5GOwogICAgICAgIGZvcihpbnQgaj0wO2o8PW4rMTtqKyspIHBydltqXT1qLTEsbmV4W2pdPWorMTsKICAgICAgICBmb3IoaW50IGo9MTtqPHI7aisrKSBkZWwocG9zW2pdKTsKICAgICAgICBmb3IoaW50IGo9bjtqPnI7ai0tKSBkZWwocG9zW2pdKTsKICAgICAgICBmb3IoaW50IGo9cisxO2o8PW47aisrKSBmW2pdPW1pbihmW2otMV0sYWRkKHBvc1tqXSkpOwogICAgICAgIGZvcihpbnQgaj1yLTE7aj49bDtqLS0pIGFkZChwb3Nbal0pOwogICAgICAgIGZvcihhdXRvIHY6dmlbaV0pCiAgICAgICAgewogICAgICAgICAgICBpZih2LnItdi5sKzE8PXNxcikgeyBhbnNbdi5wb3NdPWRwW3Yuci12LmwrMV1bdi5sXTtjb250aW51ZTsgfQogICAgICAgICAgICBhbnNbdi5wb3NdPWZbdi5yXTsKICAgICAgICAgICAgd2hpbGUocD52LnIpIGRlbChwb3NbcC0tXSk7CiAgICAgICAgICAgIGZvcihpbnQgaj1sO2o8cjtqKyspIGRlbChwb3Nbal0pOwogICAgICAgICAgICBmb3IoaW50IGo9ci0xO2o+PXYubDtqLS0pIGFuc1t2LnBvc109bWluKGFuc1t2LnBvc10sYWRkKHBvc1tqXSkpOwogICAgICAgICAgICBmb3IoaW50IGo9di5sLTE7aj49bDtqLS0pIGFkZChwb3Nbal0pOwogICAgICAgIH0KICAgIH0KICAgIGZvcihpbnQgaT0xO2k8PXE7aSsrKSBjb3V0PDxhbnNbaV08PCJcbiI7Cn0=