比赛 2026.8.28 评测结果 AAAAATTTTT
题目名称 无法拒绝孤独的她 最终得分 50
用户昵称 djyqjy 运行时间 11.131 s
代码语言 C++ 内存使用 15.71 MiB
提交时间 2026-08-28 12:34:12
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
#define pb push_back
#define mp make_pair
#define pir pair<int,int>
#define fi first
#define se second
using namespace std;
void chkmin(int &a,int b){a=min(a,b);}
void chkmax(int &a,int b){a=max(a,b);}
inline int re()
{
    char c=getchar();
    int x=0,f=1;
    while(c<'0'||c>'9'){if(c=='-') f=-1;c=getchar();}
    while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
    return x*f;
}
const int N=500010;
int n,q;
int a[N],b[N],c[N];
struct querys{int pos,x,y,z;}qs[N];
signed main()
{
    freopen("cantrefuse.in","r",stdin);
    freopen("cantrefuse.out","w",stdout);
    n=re();q=re();
    bool flaga=1,flagb=1,flagc=1;
    for(int i=1;i<=n;i++) a[i]=re(),flaga&=(a[i]==0);
    for(int i=1;i<=n;i++) b[i]=re(),flagb&=(b[i]==0);
    for(int i=1;i<n;i++) c[i]=re(),flagc&=(c[i]==0);
    for(int i=1;i<=q;i++)
    {
        qs[i].pos=re();qs[i].x=re();qs[i].y=re();qs[i].z=re();
        flaga&=(qs[i].x==0);
        flagb&=(qs[i].y==0);
        if(qs[i].pos!=n) flagc&=(qs[i].z==0);
    }
    if(flaga||flagb)
    {
        for(int i=1;i<=q;i++) printf("0\n");
        return 0;
    }
    if(flagc)
    {
        int res=0;
        for(int i=1;i<=n;i++) res+=min(a[i],b[i]);
        for(int i=1;i<=q;i++)
        {
            res-=min(a[qs[i].pos],b[qs[i].pos]);
            a[qs[i].pos]=qs[i].x;
            b[qs[i].pos]=qs[i].y;
            res+=min(a[qs[i].pos],b[qs[i].pos]);
            printf("%lld\n",res);
        }
        return 0;
    }
    for(int i=1;i<=q;i++)
    {
        a[qs[i].pos]=qs[i].x;
        b[qs[i].pos]=qs[i].y;
        if(qs[i].pos!=n) c[qs[i].pos]=qs[i].z;
        int res=0,now=0;
        for(int i=1;i<=n;i++)
        {
            now+=a[i];
            res+=min(now,b[i]);
            now-=min(now,b[i]);
            chkmin(now,c[i]);
        }
        printf("%lld\n",res);
    }
    return 0;
}