比赛 2026.8.28 评测结果 AAAAATTTTT
题目名称 无法拒绝孤独的她 最终得分 50
用户昵称 yanglich 运行时间 11.378 s
代码语言 C++ 内存使用 11.06 MiB
提交时间 2026-08-28 11:31:45
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,q,a[500005],b[500005],c[500005];
bool va=1,vb=1,vc=1;
int sum;
int ta[500005],tb[500005];
int solve(){
    int ans=0;
    for(int i=1;i<=n;i++){
        ta[i]=a[i],tb[i]=b[i];
    }
    for(int i=1;i<n;i++){
        int k=min(ta[i],tb[i]);
        ans+=k;
        //cout<<i<<" "<<<<"\n";
        ta[i]-=k;
        ta[i+1]+=min(c[i],ta[i]);
    }
    ans+=min(ta[n],tb[n]);
    return ans;
}
signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    freopen("cantrefuse.in","r",stdin);
    freopen("cantrefuse.out","w",stdout);
    cin>>n>>q;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        if(a[i]!=0){
            va=0;
        }
    }
    for(int i=1;i<=n;i++){
        cin>>b[i];
        if(b[i]!=0){
            vb=0;
        }
    }
    for(int i=1;i<n;i++){
        cin>>c[i];
        if(c[i]!=0){
            vc=0;
        }
    }
    for(int i=1;i<=n;i++){
        sum+=min(a[i],b[i]);
    }
    while(q--){
        int p,x,y,z;
        cin>>p>>x>>y>>z;
        if(va&&x==0){
            b[p]=y,c[p]=z;
            cout<<"0\n";
            continue;
        }
        if(vb&&y==0){
            a[p]=x,c[p]=z;
            cout<<"0\n";
            continue;
        }
        if(vc&&(p==n||z==0)){
            sum-=min(a[p],b[p]);
            a[p]=x,b[p]=y;
            sum+=min(a[p],b[p]);
            cout<<sum<<"\n";
            continue; 
        }
        a[p]=x,b[p]=y,c[p]=z;
        cout<<solve()<<"\n";
    }
    return 0;
}