#include <bits/stdc++.h>
using namespace std;
long long bit[100005];
void upd(int i, long long d) {
  while (i < 100005) {
    bit[i] += d;
    i += (i & (-i));
  }
}
long long get(int i) {
  long long s = 0;
  while (i) {
    s += bit[i];
    i ^= (i & (-i));
  }
  return s;
}
int main() {
  int n;
  cin >> n;
  for (int i = 1; i <= n; i++) {
    long long x;
    cin >> x;
    upd(i, x);
    upd(i + 1, -x);
  }
  int q;
  cin >> q;
  long long k = 0;
  for (int i = 2; i <= n; i++) k += max(0LL, get(i) - get(i - 1));
  long long x = (k + get(1)) / 2;
  cout << max(x, get(1) + k - x) << endl;
  while (q--) {
    long long l, r, d;
    cin >> l >> r >> d;
    if (l > 1) k -= max(0LL, get(l) - get(l - 1));
    if (r < n) k -= max(0LL, get(r + 1) - get(r));
    upd(l, d);
    upd(r + 1, -d);
    if (l > 1) k += max(0LL, get(l) - get(l - 1));
    if (r < n) k += max(0LL, get(r + 1) - get(r));
    x = (k + get(1)) / 2;
    cout << max(x, k + get(1) - x) << endl;
  }
  return 0;
}
