#include <bits/stdc++.h>
using namespace std;
long long int b1[200005];
long long int b2[200005];
long long int n;
void add(long long int v, long long int idx, long long int x) {
  while (idx <= n) {
    if (v == 1) {
      b1[idx] += x;
    } else {
      b2[idx] += x;
    }
    idx += idx & -idx;
  }
}
void range_add(long long int l, long long int r, long long int x) {
  add(1, l, x);
  add(1, r + 1, -x);
  add(2, l, x * (l - 1));
  add(2, r + 1, -x * r);
}
long long int sum(long long int v, long long int idx) {
  long long int total = 0;
  while (idx > 0) {
    if (v == 1) {
      total += b1[idx];
    } else {
      total += b2[idx];
    }
    idx -= idx & -idx;
  }
  return total;
}
long long int prefix_sum(long long int idx) {
  return sum(1, idx) * idx - sum(2, idx);
}
long long int range_sum(long long int l, long long int r) {
  return prefix_sum(r) - prefix_sum(l - 1);
}
long long int k[100005];
set<long long int> s;
long long int arr[100005];
long long int diff[100005];
signed main() {
  cin >> n;
  for (long long int i = 1; i <= n; i++) {
    cin >> arr[i];
    range_add(i, i, arr[i]);
  }
  for (long long int i = 1; i <= n - 1; i++) {
    cin >> k[i];
  }
  for (long long int i = 1; i <= n - 1; i++) {
    if (arr[i + 1] - arr[i] > k[i]) {
      s.insert(i);
    }
    diff[i] = arr[i + 1] - arr[i] - k[i];
  }
  long long int q;
  cin >> q;
  set<long long int>::iterator it;
  while (q--) {
    char c;
    cin >> c;
    if (c == '+') {
      long long int i, x;
      cin >> i >> x;
      if (i > 1) {
        s.insert(i - 1);
      }
      range_add(i, n, x);
      diff[i - 1] += x;
      it = s.lower_bound(i);
      vector<long long int> vera;
      for (; it != s.end(); it++) {
        long long int z = *it;
        if (diff[z] < x) {
          range_add(z + 1, n, -diff[z]);
          x -= diff[z];
          diff[z] = 0;
          vera.push_back(z);
        }
        if (diff[z] == x) {
          range_add(z + 1, n, -diff[z]);
          diff[z] = 0;
          vera.push_back(z);
          break;
        }
        if (diff[z] > x) {
          range_add(z + 1, n, -x);
          diff[z] -= x;
          break;
        }
      }
      for (long long int ii = 0; ii < vera.size(); ii++) {
        s.erase(vera[ii]);
      }
    } else {
      long long int l, r;
      cin >> l >> r;
      cout << range_sum(l, r) << "\n";
    }
  }
}
