#include <bits/stdc++.h>

using namespace std;
const int MAXN=1e5+10;
int n,l,q,a,b,dat[MAXN],nxt[MAXN][25];

int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++) scanf("%d",&dat[i]);
	scanf("%d",&l);
	for(int i=1;i<=n;i++)
	{
		int pos=lower_bound(dat+1,dat+n+1,dat[i]+l)-dat;
		if(dat[pos]==dat[i]+l) nxt[i][0]=pos;
		else nxt[i][0]=pos-1;
	}
	
	for(int i=n;i;i--)
		for(int j=1;j<=20;j++)
			nxt[i][j]=nxt[nxt[i][j-1]][j-1];
	
	scanf("%d",&q);
	while(q--)
	{
		scanf("%d%d",&a,&b);
		if(a>b) swap(a,b);
		
		int res=0;
		for(int i=20;i>=0;i--)
			if(nxt[a][i]&&nxt[a][i]<b) a=nxt[a][i],res+=(1<<i);
		if(a<b) a=nxt[a][0],res++;
		printf("%d\n",res);
	}
	return 0;
}