#include<bits/stdc++.h>
using namespace std;
int N, L;
int x[101010];
int sparse[18][101010];
int main()
{
    scanf("%d", &N);
    for(int i=0; i<N; ++i) scanf("%d", x+i);
    x[N] = (int)2.1e9;
    scanf("%d", &L);
    
    for(int i=0; i<N; ++i)
        sparse[0][i] = upper_bound(x, x+N, x[i]+L) - 1 - x;
    for(int j=1; j<=17; ++j)
        for(int i=0; i<N; ++i)
            sparse[j][i] = sparse[j-1][sparse[j-1][i]];
    
    int Q; scanf("%d", &Q);
    for(int i=0; i<Q; ++i)
    {
        int a, b; scanf("%d%d", &a, &b); --a; --b;
        if(a>b) swap(a, b);
        int ans = 0;
        for(int j=17; j>=0; --j)
        {
            if(sparse[j][a] < b)
            {
                ans += (1<<j);
                a = sparse[j][a];
            }
        }
        printf("%d\n", ans+1);
    }
    return 0;
        
}