比赛 2026.8.28 评测结果 AAAAAWWWWW
题目名称 无法拒绝孤独的她 最终得分 50
用户昵称 RpUtl 运行时间 2.096 s
代码语言 C++ 内存使用 15.84 MiB
提交时间 2026-08-28 10:25:07
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 5e5 + 10;
ll a[N], b[N], c[N], p[N], x[N], y[N], z[N];
int n, q, a0, b0, c0;
int main() {
    freopen("cantrefuse.in", "r", stdin);
    freopen("cantrefuse.out", "w", stdout); 
    ios::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);
    cin >> n >> q;
    for (int i = 1; i <= n; i++) cin >> a[i], a0 += (a[i] > 0);
    for (int i = 1; i <= n; i++) cin >> b[i], b0 += (b[i] > 0);
    for (int i = 1; i < n; i++) cin >> c[i], c0 += (c[i] > 0);
    for (int i = 1; i <= q; i++) {
        cin >> p[i] >> x[i] >> y[i] >> z[i];
        a0 += (x[i] > 0), b0 += (y[i] > 0), c0 += (z[i] > 0);
    }
    if (n <= 5000 && q <= 5000) {
        ll ans = 0, pre = 0, tmp;
        for (int i = 1; i <= q; i++) {
            a[p[i]] = x[i], b[p[i]] = y[i], c[p[i]] = z[i];
            for (int j = 1; j <= n; j++) {
                tmp = min(pre + a[j], b[j]), ans += tmp;
                if (j != n) pre = min(pre + a[j] - tmp, c[j]);
            }
            cout << ans << '\n'; 
            ans = pre = tmp = 0;
        }
    } else {
        if (!a0 || !b0) {
            for (int i = 1; i <= q; i++) {
                cout << "0" << '\n';
            }
        } else if (!c0) {
            ll ans = 0;
            for (int i = 1; i <= n; i++) ans += min(a[i], b[i]);
            for (int i = 1; i <= q; i++) {
                ans -= min(a[p[i]], b[p[i]]);
                a[p[i]] = x[i], b[p[i]] = y[i];
                ans += min(a[p[i]], b[p[i]]);
                cout << ans << '\n';
            }
        } else {
            cout << "Ciallo" << '\n';
        }
    }
    return 0; 
}