#include <bits/stdc++.h>
using namespace std;
const int MAX = 1e5 + 5;
int n, m;
long long t[MAX << 2], tag[MAX << 2];
int sz = 1;
inline void Period(int k, int l, int r, int a, int b, long long x) {
  if (a > r || b < l) return;
  if (a >= l && b <= r) {
    tag[k] = t[k] = x;
    return;
  }
  Period(k << 1, l, r, a, (a + b) >> 1, x);
  Period((k << 1) + 1, l, r, ((a + b) >> 1) + 1, b, x);
  t[k] = max(t[k << 1], t[(k << 1) + 1]);
}
inline long long Query(int k, int l, int r, int a, int b) {
  if (tag[k]) {
    t[k] = tag[k];
    tag[k << 1] = max(tag[k << 1], tag[k]);
    tag[(k << 1) + 1] = max(tag[(k << 1) + 1], tag[k]);
    tag[k] = 0;
  }
  if (a > r || b < l) return 0;
  if (a >= l && b <= r) return t[k];
  return max(Query(k << 1, l, r, a, (a + b) >> 1),
             Query((k << 1) + 1, l, r, ((a + b) >> 1) + 1, b));
}
int main() {
  ios::sync_with_stdio(false);
  cin >> n;
  while (sz < n) sz <<= 1;
  for (int i = 1; i <= n; i++) {
    long long x;
    cin >> x;
    Period(1, i, i, 1, sz, x);
  }
  cin >> m;
  while (m--) {
    int x;
    long long h;
    cin >> x >> h;
    long long res = Query(1, 1, x, 1, sz);
    cout << res << endl;
    Period(1, 1, x, 1, sz, res + h);
  }
  return 0;
}
