#include <bits/stdc++.h>
using namespace std;
int n, a[100003], f[100003][319];
inline int rd() {
  int res = 0;
  char c;
  while ((c = getchar()) < '0' || c > '9')
    ;
  while (c >= '0' && c <= '9') res = res * 10 + c - '0', c = getchar();
  return res;
}
int main() {
  n = rd();
  int i, p, k, sz = 0, q;
  for (; sz * sz < n; sz++)
    ;
  for (i = 1; i <= n; i++) a[i] = rd();
  for (i = n; i >= 1; i--) {
    p = i + a[i];
    for (k = 1; k <= sz; k++) {
      if (++p > n)
        f[i][k] = 1;
      else
        f[i][k] = f[p][k] + 1;
    }
  }
  q = rd();
  while (q--) {
    p = rd(), k = rd();
    if (k <= sz)
      printf("%d\n", f[p][k]);
    else {
      for (i = 0; p <= n; p = p + a[p] + k) i++;
      printf("%d\n", i);
    }
  }
  return 0;
}
