#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100005;
long long ht[MAXN];
long long n, a[MAXN];
long long m;
long long lowbit(long long a) { return a & -a; }
void add(long long a, long long b) {
  long long t = ht[a] = b;
  while (a <= n) {
    ht[a] = max(ht[a], t);
    a += lowbit(a);
  }
}
long long get(long long a) {
  long long ret = 0;
  while (a) {
    ret = max(ret, ht[a]);
    a -= lowbit(a);
  }
  return ret;
}
void load() {
  scanf("%I64d", &n);
  for (int i = 1; i <= n; ++i) {
    scanf("%I64d", a + i);
    add(i, a[i]);
  }
}
void work() {
  scanf("%I64d", &m);
  for (int i = 1; i <= m; ++i) {
    int th, tw;
    scanf("%d%d", &tw, &th);
    long long bot = get(tw);
    printf("%I64d\n", bot);
    add(1, bot + th);
  }
}
int main() {
  load();
  work();
  return 0;
}
