#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000000007;
double PI = 4 * atan(1);
unordered_map<int, int> key;
int best[100000][17], N, L, Q;
vector<int> X;
void fill() {
  for (int i = 0; i < N; i++) {
    if (i != 0) best[i][0] = best[i - 1][0];
    while (best[i][0] < (N - 1) && (X[best[i][0] + 1] - X[i]) <= L)
      best[i][0]++;
  }
  for (int j = 1; j < 17; j++)
    for (int i = 0; i < N; i++) best[i][j] = best[best[i][j - 1]][j - 1];
}
int query(int a, int b) {
  int cur = 16, ans = 0;
  while (a < b) {
    while (best[a][cur] > b && cur > 0) cur--;
    ans += (1 << cur);
    a = best[a][cur];
  }
  return ans;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> N;
  X.resize(N);
  for (int i = 0; i < N; i++) cin >> X[i];
  cin >> L >> Q;
  fill();
  for (int i = 0; i < Q; i++) {
    int a, b;
    cin >> a >> b;
    a--, b--;
    if (a > b) swap(a, b);
    cout << query(a, b) << "\n";
  }
}
