| 比赛 |
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;
}