Submission details
Task:Lisäykset
Sender:Metabolix
Submission time:2025-11-29 11:52:56 +0200
Language:C++ (C++20)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.01 s1, 2, 3details
#20.01 s1, 2, 3details
#3ACCEPTED0.01 s1, 3details
#4ACCEPTED0.01 s1, 3details
#5ACCEPTED0.01 s1, 3details
#60.36 s2, 3details
#7ACCEPTED0.36 s3details
#8ACCEPTED0.37 s3details
#9ACCEPTED0.37 s3details
#10ACCEPTED0.49 s3details
#11ACCEPTED0.49 s3details

Code

#include <bits/stdc++.h>

using namespace std;

struct kohta_t {
    int lisäys;
    int määrä;
};

bool debug = 0;
void printtaa(const map<int, kohta_t>& data) {
    if (!debug) return;
    int luku = 0;
    for (const auto& [_, kohta] : data) {
        luku += kohta.lisäys;
        for (int i = 0; i < kohta.määrä; ++i) {
            cout << luku << " ";
        }
        cout << "| ";
    }
    cout << "\n";
}

int main() {
    int n, m;
    cin >> n >> m;

    map<int, int> määrät;
    for (int i = 0; i < n; ++i) {
        int luku;
        cin >> luku;
        määrät[luku]++;
    }

    map<int, kohta_t> data;
    int kohta = 0, luku0 = 0;
    for (const auto& [luku, määrä] : määrät) {
        data[kohta] = {luku - luku0, määrä};
        kohta += määrä;
        luku0 = luku;
    }
    data[kohta] = {m+1, 0};

    for (int i = 0; i < m; ++i) {
        int muutettavia;
        cin >> muutettavia;

        cerr << muutettavia << "\n";
        printtaa(data);
        data.begin()->second.lisäys += 1;
        printtaa(data);

        auto it = data.upper_bound(muutettavia);
        --it;
        it->second.lisäys -= 1;
        printtaa(data);

        muutettavia -= it->first;
        if (muutettavia > 0) {
            int ei_muutettavia = it->second.määrä - muutettavia;
            data.insert({it->first + ei_muutettavia, {1, muutettavia}});
            it->second.määrä = ei_muutettavia;
            printtaa(data);

            auto it2 = next(next(it));
            if (it2 != data.end()) {
                it2->second.lisäys -= 1;
                printtaa(data);
                if (it2->second.lisäys == 0) {
                    prev(it2)->second.määrä += it2->second.määrä;
                    data.erase(it2);
                }
                printtaa(data);
            }
        }
        if (it->second.lisäys == 0) {
            prev(it)->second.määrä += it->second.määrä;
            data.erase(it);
            printtaa(data);
        }
    }

    int luku = 0;
    for (const auto& [_, kohta] : data) {
        luku += kohta.lisäys;
        for (int i = 0; i < kohta.määrä; ++i) {
            cout << luku << " ";
        }
    }
    cout << "\n";

    return 0;
}

Test details

Test 1

Group: 1, 2, 3

Verdict: ACCEPTED

input
1 1000
0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
1000 

user output
1000 

Error:
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1...

Test 2

Group: 1, 2, 3

Verdict:

input
1000 1000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
511 511 511 511 511 511 511 51...

user output
133 518 518 518 518 518 518 51...
Truncated

Feedback: Output is longer than expected
Error:
791
725
967
438
505
710
82
980
769
211
486
710
130
852
153
700
764
604
530
407
706
733
397...

Test 3

Group: 1, 3

Verdict: ACCEPTED

input
1000 1000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
495 495 495 495 495 495 495 49...

user output
495 495 495 495 495 495 495 49...
Truncated

Error:
648
678
511
173
23
272
463
52
778
84
984
590
497
794
789
156
610
907
355
77
442
904
66
141...

Test 4

Group: 1, 3

Verdict: ACCEPTED

input
1000 1000
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 ...

correct output
562 562 562 562 562 562 562 56...

user output
562 562 562 562 562 562 562 56...
Truncated

Error:
757
962
748
703
772
717
469
685
581
440
333
309
574
111
806
652
74
958
79
327
577
22
979
3...

Test 5

Group: 1, 3

Verdict: ACCEPTED

input
1000 1000
0 1 3 4 6 9 9 9 10 11 11 11 11...

correct output
997 997 997 997 997 998 998 99...

user output
997 997 997 997 997 998 998 99...
Truncated

Error:
492
944
350
869
697
255
843
144
454
169
743
516
966
771
167
144
412
535
962
546
540
233
28...

Test 6

Group: 2, 3

Verdict:

input
100000 100000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
50033 50033 50033 50033 50033 ...

user output
50047 50047 50047 50047 50047 ...
Truncated

Feedback: Output is longer than expected
Error:
52526
65252
42026
7044
68200
60800
7905
49397
59238
64532
9917
47504
398
32938
40119
20969...

Test 7

Group: 3

Verdict: ACCEPTED

input
100000 100000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
49996 49996 49996 49996 49996 ...

user output
49996 49996 49996 49996 49996 ...
Truncated

Error:
11274
38426
70047
46968
89675
28282
16202
89571
37388
98592
94345
22297
81923
45143
39504...

Test 8

Group: 3

Verdict: ACCEPTED

input
100000 100000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
50057 50057 50057 50057 50057 ...

user output
50057 50057 50057 50057 50057 ...
Truncated

Error:
90673
15293
17959
95013
10628
24754
32397
52392
41823
23260
43272
30689
17275
56063
10826...

Test 9

Group: 3

Verdict: ACCEPTED

input
100000 100000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
50536 50536 50536 50536 50536 ...

user output
50536 50536 50536 50536 50536 ...
Truncated

Error:
76383
29128
19551
87808
88155
49976
67172
10116
61800
1076
10186
99366
88907
10556
29677
1...

Test 10

Group: 3

Verdict: ACCEPTED

input
100000 100000
0 4 7 29 33 44 52 75 77 79 82 ...

correct output
100000 100001 100003 100023 10...

user output
100000 100001 100003 100023 10...
Truncated

Error:
24452
24861
39098
22506
66854
2360
64535
30503
24688
83569
81770
65162
87584
82856
21137
9...

Test 11

Group: 3

Verdict: ACCEPTED

input
100000 100000
1 12 14 16 49 59 59 63 68 73 8...

correct output
100001 100010 100012 100014 10...

user output
100001 100010 100012 100014 10...
Truncated

Error:
61563
9173
38719
27474
52956
73675
36183
21773
94145
9921
27431
82915
59721
27874
94058
20...