#include <bits/stdc++.h>
using namespace std;
int n;
int l;
int q;
vector<int> x;
int dp[18][100010];
int main() {
  cin >> n;
  x.resize(n, 0);
  for (int i = (0); i <= (n - 1); i++) {
    cin >> x[i];
  }
  cin >> l >> q;
  stringstream result;
  for (int i = (0); i <= (n - 1); i++) {
    {
      auto ite = upper_bound(x.begin(), x.end(), x[i] + l);
      ite--;
      int j = ite - x.begin();
      dp[0][i] = j;
    }
  }
  for (int i = (1); i <= (17); i++) {
    for (int j = (0); j <= (n - 1); j++) {
      dp[i][j] = dp[i - 1][dp[i - 1][j]];
    }
  }
  for (int c = (0); c <= (q - 1); c++) {
    int a, b;
    cin >> a >> b;
    a--;
    b--;
    if (a > b) swap(a, b);
    int ans = 0;
    int now = a;
    for (int i = (0); i <= (17); i++) {
      if (dp[i][now] < b) {
        now = dp[i][now];
        ans += 1 << i;
      }
    }
    if (now < b) {
      ans++;
    }
    result << ans << endl;
  }
  cout << result.str();
  return 0;
}
