#include <bits/stdc++.h>
using namespace std;
template <class T>
void chmin(T& a, const T& b) {
  if (a > b) a = b;
}
template <class T>
void chmax(T& a, const T& b) {
  if (a < b) a = b;
}
int N, Q;
int x[100100];
int nxt[18][100100];
int L;
int solve(int a, int b) {
  if (a > b) swap(a, b);
  int res = 0;
  for (int i = 17; i >= 0; i--) {
    if (nxt[i][a] <= b) {
      res |= (1 << i);
      a = nxt[i][a];
    }
    if (a == b) break;
  }
  return res;
}
int main() {
  cin >> N;
  for (int i = 0; i < N; i++) cin >> x[i];
  cin >> L;
  for (int i = 0; i < N; i++) {
    nxt[0][i] = upper_bound(x, x + N, x[i] + L) - x - 1;
  }
  for (int i = 0; i < 17; i++) {
    for (int j = 0; j < N; j++) {
      nxt[i + 1][j] = nxt[i][nxt[i][j]];
    }
  }
  cin >> Q;
  for (int i = 0; i < Q; i++) {
    int a, b;
    cin >> a >> b;
    a--;
    b--;
    cout << solve(a, b) << endl;
  }
  return 0;
}
