| 比赛 |
2026.8.28 |
评测结果 |
AAAAAWWWWW |
| 题目名称 |
无法拒绝孤独的她 |
最终得分 |
50 |
| 用户昵称 |
RpUtl |
运行时间 |
2.096 s |
| 代码语言 |
C++ |
内存使用 |
15.84 MiB |
| 提交时间 |
2026-08-28 10:25:07 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 5e5 + 10;
ll a[N], b[N], c[N], p[N], x[N], y[N], z[N];
int n, q, a0, b0, c0;
int main() {
freopen("cantrefuse.in", "r", stdin);
freopen("cantrefuse.out", "w", stdout);
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
cin >> n >> q;
for (int i = 1; i <= n; i++) cin >> a[i], a0 += (a[i] > 0);
for (int i = 1; i <= n; i++) cin >> b[i], b0 += (b[i] > 0);
for (int i = 1; i < n; i++) cin >> c[i], c0 += (c[i] > 0);
for (int i = 1; i <= q; i++) {
cin >> p[i] >> x[i] >> y[i] >> z[i];
a0 += (x[i] > 0), b0 += (y[i] > 0), c0 += (z[i] > 0);
}
if (n <= 5000 && q <= 5000) {
ll ans = 0, pre = 0, tmp;
for (int i = 1; i <= q; i++) {
a[p[i]] = x[i], b[p[i]] = y[i], c[p[i]] = z[i];
for (int j = 1; j <= n; j++) {
tmp = min(pre + a[j], b[j]), ans += tmp;
if (j != n) pre = min(pre + a[j] - tmp, c[j]);
}
cout << ans << '\n';
ans = pre = tmp = 0;
}
} else {
if (!a0 || !b0) {
for (int i = 1; i <= q; i++) {
cout << "0" << '\n';
}
} else if (!c0) {
ll ans = 0;
for (int i = 1; i <= n; i++) ans += min(a[i], b[i]);
for (int i = 1; i <= q; i++) {
ans -= min(a[p[i]], b[p[i]]);
a[p[i]] = x[i], b[p[i]] = y[i];
ans += min(a[p[i]], b[p[i]]);
cout << ans << '\n';
}
} else {
cout << "Ciallo" << '\n';
}
}
return 0;
}