#include <bits/stdc++.h>
using namespace std;
map<pair<int, int>, int> mp;
int arr[100001], n;
int dp[100001][500];
int get(int p, int k) {
  if (p > n) return 0;
  return 1 + get(p + k + arr[p], k);
}
int get1(int p, int k) {
  if (p > n) return 0;
  if (dp[p][k] != -1) return dp[p][k];
  return dp[p][k] = 1 + get(p + k + arr[p], k);
}
int main() {
  int p, q, i, j, k, a, b, c, x, y, z;
  cin >> n;
  for (i = 1; i <= n; ++i) {
    cin >> arr[i];
  }
  for (k = 1; k <= 318; ++k) {
    for (p = n; p > 0; --p) {
      if (p + arr[p] + k > n)
        dp[p][k] = 1;
      else
        dp[p][k] = 1 + dp[p + arr[p] + k][k];
    }
  }
  cin >> q;
  while (q--) {
    cin >> p >> k;
    if (k <= 318)
      cout << dp[p][k] << endl;
    else
      cout << get(p, k) << endl;
  }
  return 0;
}
