#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
const int N=100010;
int a[N],f[N][17];
inline int gi() {
    int x=0,o=1;
    char ch=getchar();
    while(ch!='-'&&(ch<'0'||ch>'9')) ch=getchar();
    if(ch=='-') o=-1,ch=getchar();
    while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
    return x*o;
}
int main() {
    int n,L,Q;
    cin>>n;
    for(int i=1;i<=n;i++) a[i]=gi();
    cin>>L>>Q;
    for(int i=1,j=1;i<n;i++) {
	while(j<n&&a[j+1]-a[i]<=L) ++j;
	f[i][0]=j;
    }
    f[n][0]=n;
    for(int i=n;i;i--)
	for(int j=1;j<17;j++)
	    f[i][j]=f[f[i][j-1]][j-1];
    while(Q--) {
	int x=gi(),y=gi(),ans=1;
	if(x>y) swap(x,y);
	for(int i=16;~i;i--)
	    if(f[x][i]<y) x=f[x][i],ans+=1<<i;
	printf("%d\n",ans);
    }
    return 0;
}