比赛 2026.8.28 评测结果 AAAAATTTTT
题目名称 无法拒绝孤独的她 最终得分 50
用户昵称 终焉折枝 运行时间 11.224 s
代码语言 C++ 内存使用 8.74 MiB
提交时间 2026-08-28 10:10:54
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;

#define int long long
const int N = 5 * 1e5 + 5;
int a[N], b[N], c[N];
int n, q;

signed main(){
    freopen("cantrefuse.in", "r", stdin);
    freopen("cantrefuse.out", "w", stdout);
    cin.tie(0) -> ios::sync_with_stdio(0);
    cin >> n >> q;
    bool flag1 = 1, flag2 = 1, flag3 = 1;
    for(int i = 1;i <= n;i ++){
        cin >> a[i];
        if(a[i] != 0) flag1 = 0;
    }
    for(int i = 1;i <= n;i ++){
        cin >> b[i];
        if(b[i] != 0) flag2 = 0;
    }
    for(int i = 1;i <= n - 1;i ++){
        cin >> c[i];
        if(c[i] != 0) flag3 = 0;
    }
    if(flag1){
        while(q --){
            int p, x, y, z; cin >> p >> x >> y >> z;
            cout << 0 << '\n';
        }
        return 0;
    }
    if(flag2){
        while(q --){
            int p, x, y, z; cin >> p >> x >> y >> z;
            cout << 0 << '\n';
        }
        return 0;
    }
    if(flag3){
        int ans = 0;
        for(int i = 1;i <= n;i ++){
            ans += min(a[i], b[i]);
        }
        while(q --){
            int p, x, y, z;
            cin >> p >> x >> y >> z;
            ans -= min(a[p], b[p]);
            a[p] = x, b[p] = y;
            ans += min(x, y);
            cout << ans << '\n';
        }
        return 0;
    }
    while(q --){
        int p, x, y, z; cin >> p >> x >> y >> z;
        a[p] = x; b[p] = y; c[p] = z;
        int ans = 0, ofs = 0;
        for(int i = 1;i <= n;i ++){
            int A = a[i];
            A += ofs;
            if(A >= b[i]){
                ans += b[i];
                int delta = A - b[i];
                ofs = min(delta, c[i]);
            }
            else{
                ans += A;
                ofs = 0;
            }
        }
        cout << ans << '\n';
    }
    return 0;
}