| 比赛 |
2026.8.28 |
评测结果 |
AAAAATTTTT |
| 题目名称 |
无法拒绝孤独的她 |
最终得分 |
50 |
| 用户昵称 |
终焉折枝 |
运行时间 |
11.224 s |
| 代码语言 |
C++ |
内存使用 |
8.74 MiB |
| 提交时间 |
2026-08-28 10:10:54 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 5 * 1e5 + 5;
int a[N], b[N], c[N];
int n, q;
signed main(){
freopen("cantrefuse.in", "r", stdin);
freopen("cantrefuse.out", "w", stdout);
cin.tie(0) -> ios::sync_with_stdio(0);
cin >> n >> q;
bool flag1 = 1, flag2 = 1, flag3 = 1;
for(int i = 1;i <= n;i ++){
cin >> a[i];
if(a[i] != 0) flag1 = 0;
}
for(int i = 1;i <= n;i ++){
cin >> b[i];
if(b[i] != 0) flag2 = 0;
}
for(int i = 1;i <= n - 1;i ++){
cin >> c[i];
if(c[i] != 0) flag3 = 0;
}
if(flag1){
while(q --){
int p, x, y, z; cin >> p >> x >> y >> z;
cout << 0 << '\n';
}
return 0;
}
if(flag2){
while(q --){
int p, x, y, z; cin >> p >> x >> y >> z;
cout << 0 << '\n';
}
return 0;
}
if(flag3){
int ans = 0;
for(int i = 1;i <= n;i ++){
ans += min(a[i], b[i]);
}
while(q --){
int p, x, y, z;
cin >> p >> x >> y >> z;
ans -= min(a[p], b[p]);
a[p] = x, b[p] = y;
ans += min(x, y);
cout << ans << '\n';
}
return 0;
}
while(q --){
int p, x, y, z; cin >> p >> x >> y >> z;
a[p] = x; b[p] = y; c[p] = z;
int ans = 0, ofs = 0;
for(int i = 1;i <= n;i ++){
int A = a[i];
A += ofs;
if(A >= b[i]){
ans += b[i];
int delta = A - b[i];
ofs = min(delta, c[i]);
}
else{
ans += A;
ofs = 0;
}
}
cout << ans << '\n';
}
return 0;
}