Submission details
Task:Lisäykset
Sender:Metabolix
Submission time:2025-11-29 11:45:54 +0200
Language:C++ (C++20)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.00 s1, 2, 3details
#20.00 s1, 2, 3details
#3ACCEPTED0.00 s1, 3details
#4ACCEPTED0.00 s1, 3details
#5ACCEPTED0.00 s1, 3details
#60.04 s2, 3details
#7ACCEPTED0.04 s3details
#8ACCEPTED0.04 s3details
#9ACCEPTED0.04 s3details
#10ACCEPTED0.15 s3details
#11ACCEPTED0.15 s3details

Code

#include <bits/stdc++.h>

using namespace std;

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

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    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] = {luku0 + m+1, 0};

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

        data.begin()->second.lisäys += 1;

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

        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;

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

    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 

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...

Feedback: Output is longer than expected

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...

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...

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...

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 ...

Feedback: Output is longer than expected

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 ...

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 ...

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 ...

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...

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...