#include <bits/stdc++.h>
using namespace std;
#define TASK "test"
#define int long long
#define fi first
#define sc second
#define ii pair <int, int>
#define rep(i,s,e) for (int i = (s), _e = (e); i <= _e; i++)
#define reo(i,s,e) for (int i = (s), _e = (e); i >= _e; i--)
const int maxn = 2e5;
const int mod = 1e9 + 7;
const int inf = 1e9;
int n, q;
int a[maxn + 5], c[maxn + 5];
int ans = 0;
struct Segment_Tree
{
int n;
vector<int> tree, lazy;
Segment_Tree (int n = 0) : n(n)
{
tree.assign(4 * maxn + 5, 0);
lazy.assign(4 * maxn + 5, 0);
};
void push(int id, int l, int r)
{
int m = l + r >> 1;
tree[id << 1] += (m - l + 1) * lazy[id];
tree[id << 1 | 1] += (r - m) * lazy[id];
lazy[id << 1] += lazy[id];
lazy[id << 1 | 1] += lazy[id];
lazy[id] = 0;
}
void update(int id, int l, int r, int u, int v, int val)
{
if (r < u || l > v || u > v)
return ;
if (u <= l && r <= v)
{
tree[id] += val;
lazy[id] += val;
return ;
}
int m = l + r >> 1;
push(id, l, r);
update(id << 1, l, m, u, v, val);
update(id << 1 | 1, m + 1, r, u, v, val);
tree[id] = tree[id << 1] + tree[id << 1 | 1];
}
int get(int id, int l, int r, int u, int v)
{
if (r < u || l > v || u > v)
return 0;
if (u <= l && r <= v)
return tree[id];
int m = l + r >> 1;
push(id, l, r);
return get(id << 1, l, m, u, v) + get(id << 1 | 1, m + 1, r, u, v);
}
} st1, st2;
ii getLR (int i)
{
int l = i, r = a[i];
if (l > r) swap(l, r);
return {l, r - 1};
}
signed main ()
{
cin.tie(0)->sync_with_stdio(false);
#ifndef ONLINE_JUDGE
freopen(TASK".inp","r",stdin);
freopen(TASK".out","w",stdout);
#endif
cin >> n;
rep (i, 1, n) cin >> a[i];
rep (i, 1, n - 1) cin >> c[i];
vector <int> vec;
rep (i, 1, n) vec.push_back(a[i]);
sort(vec.begin(), vec.end());
vec.resize(unique(vec.begin(), vec.end()) - vec.begin());
rep (i, 1, n)
{
st1.update(1, 1, n, i, i, c[i]);
a[i] = lower_bound(vec.begin(), vec.end(), a[i]) - vec.begin() + 1;
int l, r; tie(l, r) = getLR(i);
st2.update(1, 1, n, l, r, 1);
}
rep (i, 1, n) ans += c[i] * st2.get(1, 1, n, i, i);
cout << ans << '\n';
cin >> q;
while (q--)
{
int t, u, v;
cin >> t >> u >> v;
if (t == 1)
{
int lu, ru; tie(lu, ru) = getLR(u);
int lv, rv; tie(lv, rv) = getLR(v);
st2.update(1, 1, n, lu, ru, -1);
st2.update(1, 1, n, lv, rv, -1);
ans -= st1.get(1, 1, n, lu, ru);
ans -= st1.get(1, 1, n, lv, rv);
swap(a[u], a[v]);
tie(lu, ru) = getLR(u), tie(lv, rv) = getLR(v);
st2.update(1, 1, n, lu, ru, 1);
st2.update(1, 1, n, lv, rv, 1);
ans += st1.get(1, 1, n, lu, ru);
ans += st1.get(1, 1, n, lv, rv);
}
else
{
ans -= st1.get(1, 1, n, u, u) * st2.get(1, 1, n, u, u);
st1.update(1, 1, n, u, u, v - c[u]);
ans += st1.get(1, 1, n, u, u) * st2.get(1, 1, n, u, u);
c[u] = v;
}
cout << ans << '\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIFRBU0sgInRlc3QiCgojZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNjIHNlY29uZAojZGVmaW5lIGlpIHBhaXIgPGludCwgaW50PgoKI2RlZmluZSByZXAoaSxzLGUpIGZvciAoaW50IGkgPSAocyksIF9lID0gKGUpOyBpIDw9IF9lOyBpKyspCiNkZWZpbmUgcmVvKGkscyxlKSBmb3IgKGludCBpID0gKHMpLCBfZSA9IChlKTsgaSA+PSBfZTsgaS0tKQoKY29uc3QgaW50IG1heG4gPSAyZTU7CmNvbnN0IGludCBtb2QgPSAxZTkgKyA3Owpjb25zdCBpbnQgaW5mID0gMWU5OwoKaW50IG4sIHE7CmludCBhW21heG4gKyA1XSwgY1ttYXhuICsgNV07CmludCBhbnMgPSAwOwoKc3RydWN0IFNlZ21lbnRfVHJlZQp7CiAgICBpbnQgbjsKICAgIHZlY3RvcjxpbnQ+IHRyZWUsIGxhenk7CgogICAgU2VnbWVudF9UcmVlIChpbnQgbiA9IDApIDogbihuKQogICAgewogICAgICAgIHRyZWUuYXNzaWduKDQgKiBtYXhuICsgNSwgMCk7CiAgICAgICAgbGF6eS5hc3NpZ24oNCAqIG1heG4gKyA1LCAwKTsKICAgIH07CiAgICB2b2lkIHB1c2goaW50IGlkLCBpbnQgbCwgaW50IHIpCiAgICB7CiAgICAgICAgaW50IG0gPSBsICsgciA+PiAxOwogICAgICAgIHRyZWVbaWQgPDwgMV0gKz0gKG0gLSBsICsgMSkgKiBsYXp5W2lkXTsKICAgICAgICB0cmVlW2lkIDw8IDEgfCAxXSArPSAociAtIG0pICogbGF6eVtpZF07CiAgICAgICAgbGF6eVtpZCA8PCAxXSArPSBsYXp5W2lkXTsKICAgICAgICBsYXp5W2lkIDw8IDEgfCAxXSArPSBsYXp5W2lkXTsKICAgICAgICBsYXp5W2lkXSA9IDA7CiAgICB9CiAgICB2b2lkIHVwZGF0ZShpbnQgaWQsIGludCBsLCBpbnQgciwgaW50IHUsIGludCB2LCBpbnQgdmFsKQogICAgewogICAgICAgIGlmIChyIDwgdSB8fCBsID4gdiB8fCB1ID4gdikKICAgICAgICAgICAgcmV0dXJuIDsKICAgICAgICBpZiAodSA8PSBsICYmIHIgPD0gdikKICAgICAgICB7CiAgICAgICAgICAgIHRyZWVbaWRdICs9IHZhbDsKICAgICAgICAgICAgbGF6eVtpZF0gKz0gdmFsOwogICAgICAgICAgICByZXR1cm4gOwogICAgICAgIH0KICAgICAgICBpbnQgbSA9IGwgKyByID4+IDE7CiAgICAgICAgcHVzaChpZCwgbCwgcik7CiAgICAgICAgdXBkYXRlKGlkIDw8IDEsIGwsIG0sIHUsIHYsIHZhbCk7CiAgICAgICAgdXBkYXRlKGlkIDw8IDEgfCAxLCBtICsgMSwgciwgdSwgdiwgdmFsKTsKICAgICAgICB0cmVlW2lkXSA9IHRyZWVbaWQgPDwgMV0gKyB0cmVlW2lkIDw8IDEgfCAxXTsKICAgIH0KICAgIGludCBnZXQoaW50IGlkLCBpbnQgbCwgaW50IHIsIGludCB1LCBpbnQgdikKICAgIHsKICAgICAgICBpZiAociA8IHUgfHwgbCA+IHYgfHwgdSA+IHYpCiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIGlmICh1IDw9IGwgJiYgciA8PSB2KQogICAgICAgICAgICByZXR1cm4gdHJlZVtpZF07CiAgICAgICAgaW50IG0gPSBsICsgciA+PiAxOwogICAgICAgIHB1c2goaWQsIGwsIHIpOwogICAgICAgIHJldHVybiBnZXQoaWQgPDwgMSwgbCwgbSwgdSwgdikgKyBnZXQoaWQgPDwgMSB8IDEsIG0gKyAxLCByLCB1LCB2KTsKICAgIH0KfSBzdDEsIHN0MjsKCmlpIGdldExSIChpbnQgaSkKewogICAgaW50IGwgPSBpLCByID0gYVtpXTsKICAgIGlmIChsID4gcikgc3dhcChsLCByKTsKICAgIHJldHVybiB7bCwgciAtIDF9Owp9CgpzaWduZWQgbWFpbiAoKQp7CiAgICBjaW4udGllKDApLT5zeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgIGZyZW9wZW4oVEFTSyIuaW5wIiwiciIsc3RkaW4pOwogICAgZnJlb3BlbihUQVNLIi5vdXQiLCJ3IixzdGRvdXQpOwogICAgI2VuZGlmCgogICAgY2luID4+IG47CiAgICByZXAgKGksIDEsIG4pIGNpbiA+PiBhW2ldOwogICAgcmVwIChpLCAxLCBuIC0gMSkgY2luID4+IGNbaV07CgogICAgdmVjdG9yIDxpbnQ+IHZlYzsKICAgIHJlcCAoaSwgMSwgbikgdmVjLnB1c2hfYmFjayhhW2ldKTsKICAgIHNvcnQodmVjLmJlZ2luKCksIHZlYy5lbmQoKSk7CiAgICB2ZWMucmVzaXplKHVuaXF1ZSh2ZWMuYmVnaW4oKSwgdmVjLmVuZCgpKSAtIHZlYy5iZWdpbigpKTsKCiAgICByZXAgKGksIDEsIG4pCiAgICB7CiAgICAgICAgc3QxLnVwZGF0ZSgxLCAxLCBuLCBpLCBpLCBjW2ldKTsKCiAgICAgICAgYVtpXSA9IGxvd2VyX2JvdW5kKHZlYy5iZWdpbigpLCB2ZWMuZW5kKCksIGFbaV0pIC0gdmVjLmJlZ2luKCkgKyAxOwoKICAgICAgICBpbnQgbCwgcjsgdGllKGwsIHIpID0gZ2V0TFIoaSk7CiAgICAgICAgc3QyLnVwZGF0ZSgxLCAxLCBuLCBsLCByLCAxKTsKICAgIH0KCiAgICByZXAgKGksIDEsIG4pIGFucyArPSBjW2ldICogc3QyLmdldCgxLCAxLCBuLCBpLCBpKTsKICAgIGNvdXQgPDwgYW5zIDw8ICdcbic7CgogICAgY2luID4+IHE7CiAgICB3aGlsZSAocS0tKQogICAgewogICAgICAgIGludCB0LCB1LCB2OwogICAgICAgIGNpbiA+PiB0ID4+IHUgPj4gdjsKCiAgICAgICAgaWYgKHQgPT0gMSkKICAgICAgICB7CiAgICAgICAgICAgIGludCBsdSwgcnU7IHRpZShsdSwgcnUpID0gZ2V0TFIodSk7CiAgICAgICAgICAgIGludCBsdiwgcnY7IHRpZShsdiwgcnYpID0gZ2V0TFIodik7CgogICAgICAgICAgICBzdDIudXBkYXRlKDEsIDEsIG4sIGx1LCBydSwgLTEpOwogICAgICAgICAgICBzdDIudXBkYXRlKDEsIDEsIG4sIGx2LCBydiwgLTEpOwoKICAgICAgICAgICAgYW5zIC09IHN0MS5nZXQoMSwgMSwgbiwgbHUsIHJ1KTsKICAgICAgICAgICAgYW5zIC09IHN0MS5nZXQoMSwgMSwgbiwgbHYsIHJ2KTsKCiAgICAgICAgICAgIHN3YXAoYVt1XSwgYVt2XSk7CiAgICAgICAgICAgIHRpZShsdSwgcnUpID0gZ2V0TFIodSksIHRpZShsdiwgcnYpID0gZ2V0TFIodik7CgogICAgICAgICAgICBzdDIudXBkYXRlKDEsIDEsIG4sIGx1LCBydSwgMSk7CiAgICAgICAgICAgIHN0Mi51cGRhdGUoMSwgMSwgbiwgbHYsIHJ2LCAxKTsKCiAgICAgICAgICAgIGFucyArPSBzdDEuZ2V0KDEsIDEsIG4sIGx1LCBydSk7CiAgICAgICAgICAgIGFucyArPSBzdDEuZ2V0KDEsIDEsIG4sIGx2LCBydik7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGFucyAtPSBzdDEuZ2V0KDEsIDEsIG4sIHUsIHUpICogc3QyLmdldCgxLCAxLCBuLCB1LCB1KTsKICAgICAgICAgICAgc3QxLnVwZGF0ZSgxLCAxLCBuLCB1LCB1LCB2IC0gY1t1XSk7CiAgICAgICAgICAgIGFucyArPSBzdDEuZ2V0KDEsIDEsIG4sIHUsIHUpICogc3QyLmdldCgxLCAxLCBuLCB1LCB1KTsKICAgICAgICAgICAgY1t1XSA9IHY7CiAgICAgICAgfQoKICAgICAgICBjb3V0IDw8IGFucyA8PCAnXG4nOwogICAgfQoKICAgIHJldHVybiAwOwp9CgoK