ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#212628 | #3835. 数列变换 | 13270460609 | 100 | 678ms | 6960kb | C++ | 1.1kb | 2024-10-19 15:22:04 | 2024-10-19 18:36:24 |
answer
#include <cstdio>
#include <algorithm>
#include <iostream>
using namespace std;
const int maxn = 5e5 + 5;
const long long inf = 0x7FFFFFFFFFFFFFFF;
int n, m, q;
long long sum, b[maxn], f[maxn];
int main() {
scanf("%d%d%d", &n, &m, &q);
for (int i = 1; i <= n; i++) {
long long a; scanf("%lld", &a);
sum += (i & 1) ? a : -a;
}
for (int i = 1; i <= m; i++) {
scanf("%lld", b + i);
if (i <= n) f[0] += (i & 1) ? b[i] : -b[i];
else f[i - n] = -f[i - n - 1] + ((n & 1) ? b[i] : -b[i]) + b[i - n];
}
sort(f, f + m - n + 1);
int l, r, p = lower_bound(f, f + m - n + 1, sum) - f;
long long v, v1 = inf, v2 = inf;
if (p > 0) v1 = sum - f[p - 1];
if (p <= m - n) v2 = f[p] - sum;
printf("%lld\n", min(v1, v2));
for (int i = 1; i <= q; i++) {
scanf("%d%d%lld", &l, &r, &v);
if (((r - l) & 1) ^ 1) sum += (r & 1) ? v : -v;
p = lower_bound(f, f + m - n + 1, sum) - f;
v1 = inf, v2 = inf;
if (p > 0) v1 = sum - f[p - 1];
if (p <= m - n) v2 = f[p] - sum;
printf("%lld\n", min(v1, v2));
}
return 0;
}
Details
小提示:点击横条可展开更详细的信息
Test #1:
score: 10
Accepted
time: 0ms
memory: 1216kb
input:
60 100 100 -316328 -2972020 4147918 -2643712 5196821 -5222175 1264902 8662970 -2730531 -8400380 1752...
output:
455979 455979 455979 455979 455979 455979 455979 455978 455972 455965 455965 455966 455968 455968 45...
result:
ok 101 numbers
Test #2:
score: 10
Accepted
time: 0ms
memory: 1216kb
input:
60 100 100 -91495081 53528918 88188311 -74258245 -66799442 -49965187 -7645181 -44417344 -39124339 58...
output:
8190568 8190568 2233401 7193707 4795408 4795408 4795408 1179783 1179783 11716793 11716793 1174744 12...
result:
ok 101 numbers
Test #3:
score: 10
Accepted
time: 2ms
memory: 1244kb
input:
1000 2500 5000 -98154920 -53785940 -74265506 3679870 37683369 24917745 -92422231 8884275 -81169328 9...
output:
107041 107041 107041 107041 107041 797385 791567 791567 1392939 1392939 1392939 961800 819544 819544...
result:
ok 5001 numbers
Test #4:
score: 10
Accepted
time: 2ms
memory: 1256kb
input:
2500 4000 5000 -86828824 -50617376 6649487 69943467 -93306697 -6567886 -95650455 -85852213 -15523487...
output:
573304251 573304251 595203952 694987953 680315084 728371583 782122701 782122701 825849022 915038502 ...
result:
ok 5001 numbers
Test #5:
score: 10
Accepted
time: 3ms
memory: 1268kb
input:
3000 5000 5000 -80381922 79980974 3347134 -52177075 -66392451 -488143 4131024 -16842638 -12729315 27...
output:
5066626 3060888 6135718 46352 94807 94807 165432 448427 448427 55386 627630 627630 594397 39417 2439...
result:
ok 5001 numbers
Test #6:
score: 10
Accepted
time: 89ms
memory: 3164kb
input:
50000 150000 150000 -89108065 59343099 -97978207 -67393513 -61842201 75668265 80917778 -98775029 -68...
output:
367594 148610 759512 244446 136839 83073 302547 215766 162990 40016 136848 422047 89049 98658 343712...
result:
ok 150001 numbers
Test #7:
score: 10
Accepted
time: 75ms
memory: 2776kb
input:
100000 150000 150000 -90110621 -17018593 7329896 -25804788 -19546767 -52028202 -97290926 -68550106 7...
output:
9264157442 9362400005 9287250254 9368053211 9411500623 9385277837 9435812025 9436874552 9380121876 9...
result:
ok 150001 numbers
Test #8:
score: 10
Accepted
time: 88ms
memory: 2380kb
input:
50000 100000 150000 -99258224 -12730699 -92233936 -33566265 -39312752 -10318733 -19880407 69141095 -...
output:
128989 103327 95283 173047 317772 307164 307164 9121 9121 69178 244 144419 144419 190182 190182 2618...
result:
ok 150001 numbers
Test #9:
score: 10
Accepted
time: 94ms
memory: 2928kb
input:
80000 150000 150000 -75009884 -81911105 -96479382 73988847 18413858 58416050 60800947 -59117071 -596...
output:
343226 343226 382382 236941 997 997 997 997 997 997 997 166301 506372 488607 506128 506128 117946 13...
result:
ok 150001 numbers
Test #10:
score: 10
Accepted
time: 325ms
memory: 6960kb
input:
263999 500000 500000 -7398172 -81831034 99536754 -91618991 31225194 -18967333 -15490068 31299796 -52...
output:
447372176 412567992 370536501 370536501 370536501 370536501 432667527 432667527 411201828 411201828 ...
result:
ok 500001 numbers
Extra Test:
score: 0
Extra Test Passed