比赛 2026.8.28 评测结果 AAAAAWWWWW
题目名称 无法拒绝孤独的她 最终得分 50
用户昵称 杨蕙宇 运行时间 2.271 s
代码语言 C++ 内存使用 10.65 MiB
提交时间 2026-08-28 10:13:29
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=5e5+10;
ll n,q;
ll a[N],b[N],c[N],s[N];
ll sss;
bool f=0;
void solve1(){
    while(q--){
        ll res=0;
        ll pre=0;
        ll p,x,y,z;
        cin>>p>>x>>y>>z;
        if(p<=n){
            a[p]=x;
            b[p]=y;
            if(p<n)c[p]=z;
        }
        for(int i=1;i<=n;i++){
            ll sum=a[i]+pre;
            if(b[i]>=sum)res+=sum,pre=0;
            else res+=b[i],pre=min(sum-b[i],c[i]);
        } 
        cout<<res<<"\n"; 
    } 
}
void solve2(){
    for(int i=1;i<=q;i++){
        ll p,x,y,z;
        cin>>p>>x>>y>>z;
        if(p<=n){
            sss-=min(a[p],b[p]);
            a[p]=x;
            b[p]=y;
            if(p<n)c[p]=z;
            sss+=min(a[p],b[p]);
        }
        if(p<n&&z!=0)f=1;
        if(!f) cout<<sss<<"\n";
        else cout<<0<<"\n";
    } 
    return;
}
int 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];
    for(int i=1;i<=n;i++)cin>>b[i];
    for(int i=1;i<n;i++){
        cin>>c[i];
        if(c[i]!=0)f=1;
    }
    for(int i=1;i<=n;i++)s[i]=s[i-1]+min(a[i],b[i]);
    sss=s[n];
    if(n<=5000ll&&q<=5000ll)solve1();
    else solve2();
    return 0;
} 
/*
5 4
1 3 2 4 6
4 2 5 4 6
0 0 0 0
1 3 5 0
2 2 3 0
3 1 7 0
4 5 1 0
*/