#include<bits/stdc++.h>
using namespace std;

#define rep(i,n) for(int i=0; i<(n); i++)
#define rrep(i,n) for(int i=(n); i>=0; i--)
#define FOR(i,m,n) for(int i=(m); i<(n); i++)

int x[100010];
int dp[100010][17];

int query(int a, int b){
    if(a > b) swap(a, b);
    int s = 0;
    rrep(i, 16) if(dp[a][i] < b) { a = dp[a][i]; s += (1 << i); }
    return s;
}

int main(){
    int N, L, Q;
    scanf("%d", &N);
    rep(i, N) scanf("%d", &x[i]);
    scanf("%d %d", &L, &Q);

    rep(i, N-1) dp[i][0] = upper_bound(x, x+N, x[i]+L) - x - 1;
    rep(i, 17) dp[N][i] = N;
    dp[N-1][0] = N;
    rrep(i, N-1) FOR(j, 1, 17) dp[i][j] = dp[dp[i][j-1]][j-1];

    rep(i, Q){
        int a, b;
        scanf("%d %d", &a, &b);
        printf("%d\n", query(--a, --b)+1);
    }

    return 0;
}
