| 比赛 |
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
*/