UOJ Logo

NOI.AC

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#212628#3835. 数列变换13270460609100678ms6960kbC++1.1kb2024-10-19 15:22:042024-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