#include <bits/stdc++.h>
#define int long long
#define ll long long
#define el cout << '\n'
using namespace std;
const int maxn = 2e5;
struct Segment_Tree
{
int n;
vector<ll> tree, lazy;
Segment_Tree(int n = 0) : n(n)
{
tree.assign(4 * maxn + 10, 0);
lazy.assign(4 * maxn + 10, 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, ll 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];
}
ll 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);
}
} st_1, st_2;
int n, p[maxn + 10], q;
ll res = 0, c[maxn + 10];
vector<ll> v;
signed main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
if (fopen("SAPXEP.INP", "r"))
{
freopen("SAPXEP.INP", "r", stdin);
freopen("SAPXEP.OUT", "w", stdout);
}
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> p[i];
v.push_back(p[i]);
}
sort(v.begin(), v.end());
for (int i = 1; i <= n; i++)
{
p[i] = upper_bound(v.begin(), v.end(), p[i]) - v.begin();
int x = i;
int y = p[i];
if (x > y)
swap(x, y);
if (x == y)
continue;
st_2.update(1, 1, n, x, y - 1, 1);
// cout << x << ' ' << y, el;
}
for (int i = 1; i < n; i++)
{
int x = i;
int y = p[i];
if (x > y)
swap(x, y);
cin >> c[i];
st_1.update(1, 1, n, i, i, c[i]);
res += c[i] * st_2.get(1, 1, n, i, i);
}
cout << res, el;
cin >> q;
while (q--)
{
int t, x, y, a, b;
cin >> t >> x >> y;
a = x;
b = y;
if (t == 1)
{
int tmp_x = p[x];
int tmp_y = p[y];
if (tmp_x < x)
swap(tmp_x, x);
if (tmp_y < y)
swap(tmp_y, y);
// cout << x << ' ' << tmp_x << ' ' << y << ' ' << tmp_y, el;
res -= st_1.get(1, 1, n, x, tmp_x - 1);
res -= st_1.get(1, 1, n, y, tmp_y - 1);
st_2.update(1, 1, n, x, tmp_x - 1, -1);
st_2.update(1, 1, n, y, tmp_y - 1, - 1);
swap(p[a], p[b]);
tmp_x = p[a];
tmp_y = p[b];
if (tmp_x < a)
swap(tmp_x, a);
if (tmp_y < b)
swap(tmp_y, b);
// cout << a << ' ' << tmp_x << ' ' << b << ' ' << tmp_y, el;
res += st_1.get(1, 1, n, a, tmp_x - 1);
res += st_1.get(1, 1, n, b, tmp_y - 1);
st_2.update(1, 1, n, a, tmp_x - 1, 1);
st_2.update(1, 1, n, b, tmp_y - 1, 1);
}
else
{
res -= st_1.get(1, 1, n, x, x) * st_2.get(1, 1, n, x, x);
st_1.update(1, 1, n, x, x, y - c[x]);
res += st_1.get(1, 1, n, x, x) * st_2.get(1, 1, n, x, x);
c[x] = y;
}
cout << res, el;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBlbCBjb3V0IDw8ICdcbicKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgbWF4biA9IDJlNTsKCnN0cnVjdCBTZWdtZW50X1RyZWUKewogICAgaW50IG47CiAgICB2ZWN0b3I8bGw+IHRyZWUsIGxhenk7CgogICAgU2VnbWVudF9UcmVlKGludCBuID0gMCkgOiBuKG4pCiAgICB7CiAgICAgICAgdHJlZS5hc3NpZ24oNCAqIG1heG4gKyAxMCwgMCk7CiAgICAgICAgbGF6eS5hc3NpZ24oNCAqIG1heG4gKyAxMCwgMCk7CiAgICB9OwogICAgdm9pZCBwdXNoKGludCBpZCwgaW50IGwsIGludCByKQogICAgewogICAgICAgIGludCBtID0gbCArIHIgPj4gMTsKICAgICAgICB0cmVlW2lkIDw8IDFdICs9IChtIC0gbCArIDEpICogbGF6eVtpZF07CiAgICAgICAgdHJlZVtpZCA8PCAxIHwgMV0gKz0gKHIgLSBtKSAqIGxhenlbaWRdOwogICAgICAgIGxhenlbaWQgPDwgMV0gKz0gbGF6eVtpZF07CiAgICAgICAgbGF6eVtpZCA8PCAxIHwgMV0gKz0gbGF6eVtpZF07CiAgICAgICAgbGF6eVtpZF0gPSAwOwogICAgfQogICAgdm9pZCB1cGRhdGUoaW50IGlkLCBpbnQgbCwgaW50IHIsIGludCB1LCBpbnQgdiwgbGwgdmFsKQogICAgewogICAgICAgIGlmIChyIDwgdSB8fCBsID4gdiB8fCB1ID4gdikKICAgICAgICAgICAgcmV0dXJuIDsKICAgICAgICBpZiAodSA8PSBsICYmIHIgPD0gdikKICAgICAgICB7CiAgICAgICAgICAgIHRyZWVbaWRdICs9IHZhbDsKICAgICAgICAgICAgbGF6eVtpZF0gKz0gdmFsOwogICAgICAgICAgICByZXR1cm4gOwogICAgICAgIH0KICAgICAgICBpbnQgbSA9IGwgKyByID4+IDE7CiAgICAgICAgcHVzaChpZCwgbCwgcik7CiAgICAgICAgdXBkYXRlKGlkIDw8IDEsIGwsIG0sIHUsIHYsIHZhbCk7CiAgICAgICAgdXBkYXRlKGlkIDw8IDEgfCAxLCBtICsgMSwgciwgdSwgdiwgdmFsKTsKICAgICAgICB0cmVlW2lkXSA9IHRyZWVbaWQgPDwgMV0gKyB0cmVlW2lkIDw8IDEgfCAxXTsKICAgIH0KICAgIGxsIGdldChpbnQgaWQsIGludCBsLCBpbnQgciwgaW50IHUsIGludCB2KQogICAgewogICAgICAgIGlmIChyIDwgdSB8fCBsID4gdiB8fCB1ID4gdikKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgaWYgKHUgPD0gbCAmJiByIDw9IHYpCiAgICAgICAgICAgIHJldHVybiB0cmVlW2lkXTsKICAgICAgICBpbnQgbSA9IGwgKyByID4+IDE7CiAgICAgICAgcHVzaChpZCwgbCwgcik7CiAgICAgICAgcmV0dXJuIGdldChpZCA8PCAxLCBsLCBtLCB1LCB2KSArIGdldChpZCA8PCAxIHwgMSwgbSArIDEsIHIsIHUsIHYpOwogICAgfQp9IHN0XzEsIHN0XzI7CgppbnQgbiwgcFttYXhuICsgMTBdLCBxOwpsbCByZXMgPSAwLCBjW21heG4gKyAxMF07CnZlY3RvcjxsbD4gdjsKCnNpZ25lZCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBpZiAoZm9wZW4oIlNBUFhFUC5JTlAiLCAiciIpKQogICAgewogICAgICAgIGZyZW9wZW4oIlNBUFhFUC5JTlAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKCJTQVBYRVAuT1VUIiwgInciLCBzdGRvdXQpOwogICAgfQoKICAgIGNpbiA+PiBuOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgewogICAgICAgIGNpbiA+PiBwW2ldOwogICAgICAgIHYucHVzaF9iYWNrKHBbaV0pOwogICAgfQogICAgc29ydCh2LmJlZ2luKCksIHYuZW5kKCkpOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgewogICAgICAgIHBbaV0gPSB1cHBlcl9ib3VuZCh2LmJlZ2luKCksIHYuZW5kKCksIHBbaV0pIC0gdi5iZWdpbigpOwogICAgICAgIGludCB4ID0gaTsKICAgICAgICBpbnQgeSA9IHBbaV07CiAgICAgICAgaWYgKHggPiB5KQogICAgICAgICAgICBzd2FwKHgsIHkpOwogICAgICAgIGlmICh4ID09IHkpCiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIHN0XzIudXBkYXRlKDEsIDEsIG4sIHgsIHkgLSAxLCAxKTsKLy8gICAgICAgIGNvdXQgPDwgeCA8PCAnICcgPDwgeSwgZWw7CiAgICB9CiAgICBmb3IgKGludCBpID0gMTsgaSA8IG47IGkrKykKICAgIHsKICAgICAgICBpbnQgeCA9IGk7CiAgICAgICAgaW50IHkgPSBwW2ldOwogICAgICAgIGlmICh4ID4geSkKICAgICAgICAgICAgc3dhcCh4LCB5KTsKICAgICAgICBjaW4gPj4gY1tpXTsKICAgICAgICBzdF8xLnVwZGF0ZSgxLCAxLCBuLCBpLCBpLCBjW2ldKTsKICAgICAgICByZXMgKz0gY1tpXSAqIHN0XzIuZ2V0KDEsIDEsIG4sIGksIGkpOwogICAgfQogICAgY291dCA8PCByZXMsIGVsOwogICAgY2luID4+IHE7CiAgICB3aGlsZSAocS0tKQogICAgewogICAgICAgIGludCB0LCB4LCB5LCBhLCBiOwogICAgICAgIGNpbiA+PiB0ID4+IHggPj4geTsKICAgICAgICBhID0geDsKICAgICAgICBiID0geTsKICAgICAgICBpZiAodCA9PSAxKQogICAgICAgIHsKICAgICAgICAgICAgaW50IHRtcF94ID0gcFt4XTsKICAgICAgICAgICAgaW50IHRtcF95ID0gcFt5XTsKICAgICAgICAgICAgaWYgKHRtcF94IDwgeCkKICAgICAgICAgICAgICAgIHN3YXAodG1wX3gsIHgpOwogICAgICAgICAgICBpZiAodG1wX3kgPCB5KQogICAgICAgICAgICAgICAgc3dhcCh0bXBfeSwgeSk7Ci8vICAgICAgICAgICAgY291dCA8PCB4IDw8ICcgJyA8PCB0bXBfeCA8PCAnICcgPDwgeSA8PCAnICcgPDwgdG1wX3ksIGVsOwogICAgICAgICAgICByZXMgLT0gc3RfMS5nZXQoMSwgMSwgbiwgeCwgdG1wX3ggLSAxKTsKICAgICAgICAgICAgcmVzIC09IHN0XzEuZ2V0KDEsIDEsIG4sIHksIHRtcF95IC0gMSk7CiAgICAgICAgICAgIHN0XzIudXBkYXRlKDEsIDEsIG4sIHgsIHRtcF94IC0gMSwgLTEpOwogICAgICAgICAgICBzdF8yLnVwZGF0ZSgxLCAxLCBuLCB5LCB0bXBfeSAtIDEsIC0gMSk7CiAgICAgICAgICAgIHN3YXAocFthXSwgcFtiXSk7CiAgICAgICAgICAgIHRtcF94ID0gcFthXTsKICAgICAgICAgICAgdG1wX3kgPSBwW2JdOwogICAgICAgICAgICBpZiAodG1wX3ggPCBhKQogICAgICAgICAgICAgICAgc3dhcCh0bXBfeCwgYSk7CiAgICAgICAgICAgIGlmICh0bXBfeSA8IGIpCiAgICAgICAgICAgICAgICBzd2FwKHRtcF95LCBiKTsKLy8gICAgICAgICAgICBjb3V0IDw8IGEgPDwgJyAnIDw8IHRtcF94IDw8ICcgJyA8PCBiIDw8ICcgJyA8PCB0bXBfeSwgZWw7CiAgICAgICAgICAgIHJlcyArPSBzdF8xLmdldCgxLCAxLCBuLCBhLCB0bXBfeCAtIDEpOwogICAgICAgICAgICByZXMgKz0gc3RfMS5nZXQoMSwgMSwgbiwgYiwgdG1wX3kgLSAxKTsKICAgICAgICAgICAgc3RfMi51cGRhdGUoMSwgMSwgbiwgYSwgdG1wX3ggLSAxLCAxKTsKICAgICAgICAgICAgc3RfMi51cGRhdGUoMSwgMSwgbiwgYiwgdG1wX3kgLSAxLCAxKTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgcmVzIC09IHN0XzEuZ2V0KDEsIDEsIG4sIHgsIHgpICogc3RfMi5nZXQoMSwgMSwgbiwgeCwgeCk7CiAgICAgICAgICAgIHN0XzEudXBkYXRlKDEsIDEsIG4sIHgsIHgsIHkgLSBjW3hdKTsKICAgICAgICAgICAgcmVzICs9IHN0XzEuZ2V0KDEsIDEsIG4sIHgsIHgpICogc3RfMi5nZXQoMSwgMSwgbiwgeCwgeCk7CiAgICAgICAgICAgIGNbeF0gPSB5OwogICAgICAgIH0KICAgICAgICBjb3V0IDw8IHJlcywgZWw7CiAgICB9Cn0K