#include "header.hpp"
// #define int long long

signed main() {
    //input
    int N;cin>>N;
    vector<int> x(N);
    rep(n, N) cin>>x[n];
    int L;cin>>L;
    int Q;cin>>Q;

    //solve
    vector<vector<int>> db(N, vector<int>(20));
    rep(n, N){
        // fill: db[n][0]
        // x[n] + L
        db[n][0] = upos(x, x[n]+L) - 1;
    }

    rep(k, 1, 20){
        rep(n, N){
            // fill: db[n][k];
            db[n][k] = db[db[n][k-1]][k-1];
        }
    }

    rep(q, Q){
        int a,b;
        cin>>a>>b;
        a--;b--;
        if (a>b) swap(a, b);
        dump(a, b);
        // db[a][x]<=bとなる最大
        int ans = 0;
        while (a!=b){
            dump(a, b);
            int k = upos(db[a], b) - 1;
            ans += pow(2, k);
            a = db[a][k];
        }
        cout << ans << endl;
    }

    return 0; 
}
