#include <bits/stdc++.h>
using namespace std;
int dp(int i);
int n, l, q;
long long x[100009], d[100009];
int memo[100009];
int main() {
  memset(memo, -1, sizeof(memo));
  cin >> n;
  for (int i = 0; i < n; i++) cin >> x[i];
  cin >> l;
  for (int i = 0; i < n; i++) {
    int idx = upper_bound(x, x + n, x[i] + l) - x - 1;
    d[i] = idx;
  }
  cin >> q;
  for (int i = 0; i < q; i++) {
    int a, b;
    cin >> a >> b;
    a--;
    b--;
    if (a > b) swap(a, b);
    cout << dp(a) - dp(b) << endl;
  }
  return (0);
}
int dp(int i) {
  if (memo[i] != -1) return memo[i];
  if (i == n - 1) return 0;
  return memo[i] = dp(d[i]) + 1;
}
