#include <bits/stdc++.h>
using namespace std;
#define MAX 200005
int a[MAX], SongNghi[MAX];
int cost[MAX], st[4 * MAX];
long long cnt[MAX], diffArr[MAX]; // cnt for number of segments using edge i
int n;
map<int, int> iniPos, afterPos;
long long iniCost;
void build(int id, int l, int r) {
if (l == r) {
st[id] = cost[l];
return;
}
int mid = (l + r) / 2;
build(2 * id, l, mid);
build(2 * id + 1, mid + 1, r);
st[id] = st[2 * id] + st[2 * id + 1];
}
void update(int id, int l, int r, int index, int value) {
if (l > index || r < index) return;
if (l == r) {
st[id] = value;
return;
}
int mid = (l + r) / 2;
update(2 * id, l, mid, index, value);
update(2 * id + 1, mid + 1, r, index, value);
st[id] = st[2 * id] + st[2 * id + 1];
}
int getSum(int id, int l, int r, int u, int v) {
if (l > v || r < u) return 0;
if (l >= u && r <= v) return st[id];
int mid = (l + r) / 2;
return getSum(2 * id, l, mid, u, v) + getSum(2 * id + 1, mid + 1, r, u, v);
}
int calcCost(int l, int r) {
if (l > r) swap(l, r);
if (l == r) return 0;
return getSum(1, 1, n - 1, l, r - 1);
}
void solve() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
SongNghi[i] = a[i];
}
for (int i = 1; i <= n - 1; i++) scanf("%d", &cost[i]);
build(1, 1, n - 1);
// map initial and after positions
sort(SongNghi + 1, SongNghi + n + 1);
for (int i = 1; i <= n; i++) {
iniPos[a[i]] = i;
afterPos[SongNghi[i]] = i;
}
// build difference array for cnt
for (int i = 1; i <= n; i++) diffArr[i] = 0;
for (int i = 1; i <= n; i++) {
int p = iniPos[a[i]];
int q = afterPos[a[i]];
if (p < q) {
diffArr[p]++;
diffArr[q]--;
} else if (q < p) {
diffArr[q]++;
diffArr[p]--;
}
}
// prefix to get cnt
cnt[0] = 0;
for (int i = 1; i <= n - 1; i++) {
cnt[i] = cnt[i - 1] + diffArr[i];
}
// initial cost = sum cost[i] * cnt[i]
iniCost = 0;
for (int i = 1; i <= n - 1; i++) {
iniCost += cnt[i] * cost[i];
}
printf("%lld\n", iniCost);
int q; scanf("%d", &q);
while (q--) {
int type, l, r;
scanf("%d %d %d", &type, &l, &r);
if (type == 1) {
int x = a[l];
int y = a[r];
// old contributions
long long oldX = calcCost(iniPos[x], afterPos[x]);
long long oldY = calcCost(iniPos[y], afterPos[y]);
iniCost -= (oldX + oldY);
// swap positions and values
swap(iniPos[x], iniPos[y]);
swap(a[l], a[r]);
// new contributions
long long newX = calcCost(iniPos[x], afterPos[x]);
long long newY = calcCost(iniPos[y], afterPos[y]);
iniCost += (newX + newY);
}
else if (type == 2) {
// update cost at edge l
int old = cost[l];
update(1, 1, n - 1, l, r);
cost[l] = r;
// adjust iniCost by number of segments using this edge
iniCost += cnt[l] * (long long)(r - old);
}
printf("%lld\n", iniCost);
}
}
int main() {
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIE1BWCAyMDAwMDUKaW50IGFbTUFYXSwgU29uZ05naGlbTUFYXTsKaW50IGNvc3RbTUFYXSwgc3RbNCAqIE1BWF07CmxvbmcgbG9uZyBjbnRbTUFYXSwgZGlmZkFycltNQVhdOyAvLyBjbnQgZm9yIG51bWJlciBvZiBzZWdtZW50cyB1c2luZyBlZGdlIGkKaW50IG47CgptYXA8aW50LCBpbnQ+IGluaVBvcywgYWZ0ZXJQb3M7CmxvbmcgbG9uZyBpbmlDb3N0OwoKdm9pZCBidWlsZChpbnQgaWQsIGludCBsLCBpbnQgcikgewogICAgaWYgKGwgPT0gcikgewogICAgICAgIHN0W2lkXSA9IGNvc3RbbF07CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaW50IG1pZCA9IChsICsgcikgLyAyOwogICAgYnVpbGQoMiAqIGlkLCBsLCBtaWQpOwogICAgYnVpbGQoMiAqIGlkICsgMSwgbWlkICsgMSwgcik7CiAgICBzdFtpZF0gPSBzdFsyICogaWRdICsgc3RbMiAqIGlkICsgMV07Cn0KCnZvaWQgdXBkYXRlKGludCBpZCwgaW50IGwsIGludCByLCBpbnQgaW5kZXgsIGludCB2YWx1ZSkgewogICAgaWYgKGwgPiBpbmRleCB8fCByIDwgaW5kZXgpIHJldHVybjsKICAgIGlmIChsID09IHIpIHsKICAgICAgICBzdFtpZF0gPSB2YWx1ZTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpbnQgbWlkID0gKGwgKyByKSAvIDI7CiAgICB1cGRhdGUoMiAqIGlkLCBsLCBtaWQsIGluZGV4LCB2YWx1ZSk7CiAgICB1cGRhdGUoMiAqIGlkICsgMSwgbWlkICsgMSwgciwgaW5kZXgsIHZhbHVlKTsKICAgIHN0W2lkXSA9IHN0WzIgKiBpZF0gKyBzdFsyICogaWQgKyAxXTsKfQoKaW50IGdldFN1bShpbnQgaWQsIGludCBsLCBpbnQgciwgaW50IHUsIGludCB2KSB7CiAgICBpZiAobCA+IHYgfHwgciA8IHUpIHJldHVybiAwOwogICAgaWYgKGwgPj0gdSAmJiByIDw9IHYpIHJldHVybiBzdFtpZF07CiAgICBpbnQgbWlkID0gKGwgKyByKSAvIDI7CiAgICByZXR1cm4gZ2V0U3VtKDIgKiBpZCwgbCwgbWlkLCB1LCB2KSArIGdldFN1bSgyICogaWQgKyAxLCBtaWQgKyAxLCByLCB1LCB2KTsKfQoKaW50IGNhbGNDb3N0KGludCBsLCBpbnQgcikgewogICAgaWYgKGwgPiByKSBzd2FwKGwsIHIpOwogICAgaWYgKGwgPT0gcikgcmV0dXJuIDA7CiAgICByZXR1cm4gZ2V0U3VtKDEsIDEsIG4gLSAxLCBsLCByIC0gMSk7Cn0KCnZvaWQgc29sdmUoKSB7CiAgICBzY2FuZigiJWQiLCAmbik7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICBzY2FuZigiJWQiLCAmYVtpXSk7CiAgICAgICAgU29uZ05naGlbaV0gPSBhW2ldOwogICAgfQogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbiAtIDE7IGkrKykgc2NhbmYoIiVkIiwgJmNvc3RbaV0pOwoKICAgIGJ1aWxkKDEsIDEsIG4gLSAxKTsKCiAgICAvLyBtYXAgaW5pdGlhbCBhbmQgYWZ0ZXIgcG9zaXRpb25zCiAgICBzb3J0KFNvbmdOZ2hpICsgMSwgU29uZ05naGkgKyBuICsgMSk7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICBpbmlQb3NbYVtpXV0gPSBpOwogICAgICAgIGFmdGVyUG9zW1NvbmdOZ2hpW2ldXSA9IGk7CiAgICB9CgogICAgLy8gYnVpbGQgZGlmZmVyZW5jZSBhcnJheSBmb3IgY250CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIGRpZmZBcnJbaV0gPSAwOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgaW50IHAgPSBpbmlQb3NbYVtpXV07CiAgICAgICAgaW50IHEgPSBhZnRlclBvc1thW2ldXTsKICAgICAgICBpZiAocCA8IHEpIHsKICAgICAgICAgICAgZGlmZkFycltwXSsrOwogICAgICAgICAgICBkaWZmQXJyW3FdLS07CiAgICAgICAgfSBlbHNlIGlmIChxIDwgcCkgewogICAgICAgICAgICBkaWZmQXJyW3FdKys7CiAgICAgICAgICAgIGRpZmZBcnJbcF0tLTsKICAgICAgICB9CiAgICB9CiAgICAvLyBwcmVmaXggdG8gZ2V0IGNudAogICAgY250WzBdID0gMDsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG4gLSAxOyBpKyspIHsKICAgICAgICBjbnRbaV0gPSBjbnRbaSAtIDFdICsgZGlmZkFycltpXTsKICAgIH0KCiAgICAvLyBpbml0aWFsIGNvc3QgPSBzdW0gY29zdFtpXSAqIGNudFtpXQogICAgaW5pQ29zdCA9IDA7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuIC0gMTsgaSsrKSB7CiAgICAgICAgaW5pQ29zdCArPSBjbnRbaV0gKiBjb3N0W2ldOwogICAgfQogICAgcHJpbnRmKCIlbGxkXG4iLCBpbmlDb3N0KTsKCiAgICBpbnQgcTsgc2NhbmYoIiVkIiwgJnEpOwogICAgd2hpbGUgKHEtLSkgewogICAgICAgIGludCB0eXBlLCBsLCByOwogICAgICAgIHNjYW5mKCIlZCAlZCAlZCIsICZ0eXBlLCAmbCwgJnIpOwogICAgICAgIGlmICh0eXBlID09IDEpIHsKICAgICAgICAgICAgaW50IHggPSBhW2xdOwogICAgICAgICAgICBpbnQgeSA9IGFbcl07CiAgICAgICAgICAgIC8vIG9sZCBjb250cmlidXRpb25zCiAgICAgICAgICAgIGxvbmcgbG9uZyBvbGRYID0gY2FsY0Nvc3QoaW5pUG9zW3hdLCBhZnRlclBvc1t4XSk7CiAgICAgICAgICAgIGxvbmcgbG9uZyBvbGRZID0gY2FsY0Nvc3QoaW5pUG9zW3ldLCBhZnRlclBvc1t5XSk7CiAgICAgICAgICAgIGluaUNvc3QgLT0gKG9sZFggKyBvbGRZKTsKICAgICAgICAgICAgLy8gc3dhcCBwb3NpdGlvbnMgYW5kIHZhbHVlcwogICAgICAgICAgICBzd2FwKGluaVBvc1t4XSwgaW5pUG9zW3ldKTsKICAgICAgICAgICAgc3dhcChhW2xdLCBhW3JdKTsKICAgICAgICAgICAgLy8gbmV3IGNvbnRyaWJ1dGlvbnMKICAgICAgICAgICAgbG9uZyBsb25nIG5ld1ggPSBjYWxjQ29zdChpbmlQb3NbeF0sIGFmdGVyUG9zW3hdKTsKICAgICAgICAgICAgbG9uZyBsb25nIG5ld1kgPSBjYWxjQ29zdChpbmlQb3NbeV0sIGFmdGVyUG9zW3ldKTsKICAgICAgICAgICAgaW5pQ29zdCArPSAobmV3WCArIG5ld1kpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmICh0eXBlID09IDIpIHsKICAgICAgICAgICAgLy8gdXBkYXRlIGNvc3QgYXQgZWRnZSBsCiAgICAgICAgICAgIGludCBvbGQgPSBjb3N0W2xdOwogICAgICAgICAgICB1cGRhdGUoMSwgMSwgbiAtIDEsIGwsIHIpOwogICAgICAgICAgICBjb3N0W2xdID0gcjsKICAgICAgICAgICAgLy8gYWRqdXN0IGluaUNvc3QgYnkgbnVtYmVyIG9mIHNlZ21lbnRzIHVzaW5nIHRoaXMgZWRnZQogICAgICAgICAgICBpbmlDb3N0ICs9IGNudFtsXSAqIChsb25nIGxvbmcpKHIgLSBvbGQpOwogICAgICAgIH0KICAgICAgICBwcmludGYoIiVsbGRcbiIsIGluaUNvc3QpOwogICAgfQp9CgppbnQgbWFpbigpIHsKICAgIHNvbHZlKCk7CiAgICByZXR1cm4gMDsKfQo=