#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9;
const long long MOD = 1e9 + 7;
double EPS = 1e-8;
const int MAX_N = 1e5 + 10;
int nxt[MAX_N][32];
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  int n;
  cin >> n;
  vector<long long> x(n);
  for (int i = (0); i < (int)(n); i++) cin >> x[i];
  long long L;
  int Q;
  cin >> L >> Q;
  for (int i = (0); i < (int)(n); i++) {
    auto it = upper_bound(x.begin(), x.end(), x[i] + L);
    --it;
    nxt[i][0] = it - x.begin();
  }
  for (int j = (1); j < (int)(32); j++) {
    for (int i = (0); i < (int)(n); i++) {
      nxt[i][j] = nxt[nxt[i][j - 1]][j - 1];
    }
  }
  for (int q = (0); q < (int)(Q); q++) {
    long long a, b;
    cin >> a >> b;
    --a;
    --b;
    if (a > b) swap(a, b);
    long long ans = 0LL;
    int cur = a;
    while (cur < b) {
      int i = 0;
      while (nxt[cur][i] < b) ++i;
      if (i < 0) i = 0;
      ans += (1LL << i);
      cur = nxt[cur][i];
    }
    cout << ans << '\n';
  }
  return 0;
}
