#include <bits/stdc++.h>
using namespace std;
const int MX = 300005, mod = 1000000007;
struct ST {
  long long si, sj, res;
  int cn;
  ST() : res(0), si(0), sj(0), cn(0) {}
} st[8 * MX];
int n, p[MX], q, x[MX], k[MX], in[2 * MX];
long long p2[MX], inv[MX];
vector<pair<int, int> > c;
void build(int i, int j, int pos) {
  if (i == j) {
    in[i] = pos;
    return;
  }
  int m = (i + j) / 2;
  build(i, m, pos * 2);
  build(m + 1, j, pos * 2 + 1);
}
void update(int x, int k) {
  int pos = in[x];
  st[pos].si = k;
  st[pos].sj = inv[1] * k % mod;
  st[pos].cn = bool(k);
  pos /= 2;
  while (pos) {
    int izq = st[pos * 2].cn;
    st[pos].res = (st[pos * 2].res + st[pos * 2 + 1].res +
                   st[pos * 2].si * inv[izq] % mod * st[pos * 2 + 1].sj) %
                  mod;
    st[pos].si = (st[pos * 2].si + p2[izq] * st[pos * 2 + 1].si) % mod;
    st[pos].sj = (st[pos * 2].sj + inv[izq] * st[pos * 2 + 1].sj) % mod;
    st[pos].cn = st[pos * 2].cn + st[pos * 2 + 1].cn;
    pos /= 2;
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  p2[0] = inv[0] = 1;
  p2[1] = 2;
  inv[1] = 500000004;
  for (int i = 2; i < MX; i++) {
    p2[i] = p2[i - 1] * 2 % mod;
    inv[i] = inv[i - 1] * inv[1] % mod;
  }
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%d", p + i);
    c.emplace_back(p[i], i);
  }
  scanf("%d", &q);
  for (int i = 0; i < q; i++) {
    scanf("%d%d", x + i, k + i);
    c.emplace_back(k[i], x[i]);
  }
  sort(c.begin(), c.end());
  c.erase(unique(c.begin(), c.end()), c.end());
  build(1, c.size(), 1);
  for (int i = 1; i <= n; i++)
    update(upper_bound(c.begin(), c.end(), pair<int, int>(p[i], i)) - c.begin(),
           p[i]);
  printf("%d\n", st[1].res);
  for (int i = 0; i < q; i++) {
    update(upper_bound(c.begin(), c.end(), pair<int, int>(p[x[i]], x[i])) -
               c.begin(),
           0);
    p[x[i]] = k[i];
    update(upper_bound(c.begin(), c.end(), pair<int, int>(p[x[i]], x[i])) -
               c.begin(),
           p[x[i]]);
    printf("%d\n", st[1].res);
  }
  return 0;
}
