比赛 2026.8.28 评测结果 AAAAWTTTTT
题目名称 无法拒绝孤独的她 最终得分 40
用户昵称 Ruyi 运行时间 12.300 s
代码语言 C++ 内存使用 10.48 MiB
提交时间 2026-08-28 10:45:29
显示代码纯文本
#include<bits/stdc++.h>
#define ll long long
#define N 500001
using namespace std;
ll n,q,a[N],b[N],c[N],p,x,y,z,sum,ans[N],now,sans;
bool flag1=true,flag2=true,flag3=true;
ll read(){
	ll x=0,f=1;
	char c=' ';
	while(c>'9'||c<'0'){
		if(c=='-') f=-1;
		c=getchar();
	}
	while(c>='0'&&c<='9'){
		x=x*10+(c-'0');
		c=getchar();
	}
	return x*f;
}
void write(ll x){
	if(x<0){
		putchar('-');
		x=-x;
	}
    if(x>9) write(x/10);
    putchar(x%10+'0');
    return ;
}
int main(){
    freopen("cantrefuse.in","r",stdin);
    freopen("cantrefuse.out","w",stdout);
    n=read();
    q=read();
    for(int i=1;i<=n;i++){
        a[i]=read();
        if(a[i]!=0) flag1=false;
    }
    for(int i=1;i<=n;i++){
        b[i]=read();
        if(b[i]!=0) flag2=false;
        ans[i]=max(a[i],b[i]);
        sum+=ans[i];
    }
    for(int i=1;i<n;i++){
        c[i]=read();
        if(c[i]!=0) flag3=false;
    }
    while(q--){
        p=read();
        x=read();
        y=read();
        z=read();
        if(flag1&&x==0){
            b[p]=y;
            if(p!=n) c[p]=z;
            cout<<0<<endl;
        }else if(flag2&&y==0){
            a[p]=x;
            if(p!=n) c[p]=z;
            cout<<0<<endl;
        }else if(flag3&&(p==n||z==0)){
            a[p]=x;
            b[p]=y;
            sum-=ans[p];
            ans[p]=max(x,y);
            sum+=ans[p];
            cout<<sum<<endl;
        }else{
            a[p]=x;
            b[p]=y;
            c[p]=z;
            for(int i=1;i<=n;i++){
                sans+=min(a[i]+now,b[i]);
                if(a[i]+now>b[i]) now=min(a[i]+now-b[i],c[i]);
                else now=0;
            }
            cout<<sans<<endl;
            sans=now=0;
        }
    }
    return 0;
}