#include <bits/stdc++.h>
using namespace std;
int n, l, q;
int arr[511111];
bool used[511111];
int nxt[511111];
inline void dfs(int v) {
  used[v] = true;
  int i;
  for (i = v; i < n; i++) {
    if (arr[i] - arr[v] > l) break;
  }
  nxt[v] = i - 1;
  if (i == n) return;
  dfs(i);
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%d", &arr[i]);
  scanf("%d\n%d", &l, &q);
  for (int i = 0; i < n; i++)
    if (!used[i]) dfs(i);
  int x, y;
  int i, ans;
  while (q--) {
    scanf("%d %d", &x, &y);
    ans = 0;
    if (x > y) swap(x, y);
    --x, --y;
    for (i = x; i < y; i = nxt[i], ans++)
      ;
    printf("%d\n", ans);
  }
  return 0;
}
