#include <bits/stdc++.h>
using namespace std;
int bit[300001];
int a[300001];
int o[300001];
int val[300001];
int n;
void update(int i, int val) {
  while (i <= n) {
    bit[i] += val;
    i += (i & -i);
  }
}
int get(int i) {
  int sum = 0;
  while (i > 0) {
    sum = sum + bit[i];
    i -= (i & -i);
  }
  return sum;
}
int bfind1(int i, int j, int val1) {
  int val2 = get(i + 1) - get(val1);
  int mid = (i + j) / 2;
  int val3 = get(mid + 1) - get(val1);
  if (val2 > 0) return i;
  if (val3 <= 0) {
    return bfind1(mid + 1, j, val1);
  } else
    return bfind1(i, mid, val1);
}
void updateval(int p, int x) {
  p--;
  if (!o[p])
    if (val[p] + x >= a[p]) {
      o[p] = 1;
      update(p + 1, -1);
      x = val[p] + x - a[p];
      val[p] = a[p];
    } else {
      val[p] = val[p] + x;
      return;
    }
  while (o[p]) {
    int val2 = get(n) - get(p + 1);
    if (val2 == 0) return;
    p = bfind1(p + 1, n - 1, p + 1);
    if (val[p] + x >= a[p]) {
      o[p] = 1;
      update(p + 1, -1);
      x = val[p] + x - a[p];
      val[p] = a[p];
    } else {
      val[p] = val[p] + x;
      break;
    }
  }
  return;
}
int main() {
  memset(o, 0, sizeof o);
  memset(val, 0, sizeof val);
  memset(bit, 0, sizeof bit);
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) update(i, 1);
  for (int i = 0; i < n; i++) scanf("%d", &a[i]);
  int m;
  scanf("%d", &m);
  for (int i = 0; i < m; i++) {
    int x, p, t;
    scanf("%d", &t);
    if (t == 1) {
      scanf("%d", &p);
      scanf("%d", &x);
      updateval(p, x);
    } else {
      scanf("%d", &p);
      p--;
      printf("%d\n", val[p]);
    }
  }
}
