241042026-02-04 12:15:03szabel26Megrendelésekcpp17Accepted 50/5071ms1244 KiB
#include <iostream>
#include <vector>
using namespace std;

vector<vector<int>> hataridok;
vector<vector<int>> sol;
int n, m, k, sol_db;

int main()
{
    cin >> n >> m >> k;
    hataridok.resize(n + 1);
    for (int i = 1; i <= m; ++i)
    {
        int a;
        cin >> a;
        hataridok[a].push_back(i);
    }

    int a = 0;
    int akt_nap = 1;
    int i = akt_nap;
    /* while (!hataridok[i].empty() && a < k)
    {
        sol.push_back({akt_nap, hataridok[i][hataridok[i].size() - 1]});
        ++a;
        hataridok[i].pop_back();

        while (hataridok[i].empty() && i < n)
            ++i;
        if (a == k && akt_nap < n)
        {
            ++akt_nap;
            a = 0;
            if (i < akt_nap)
                i = akt_nap;
            while (hataridok[i].empty() && i < n)
                ++i;
        }
        else if (a == k && akt_nap == n)
            break;
    } */

    sol.resize(n + 1);
    for (int akt_nap = 1; akt_nap <= n; ++akt_nap)
    {
        int i = akt_nap;
        while (hataridok[i].empty() && i < n)
            ++i;

        while (!hataridok[i].empty() && sol[akt_nap].size() < k)
        {
            sol[akt_nap].push_back(hataridok[i][hataridok[i].size() - 1]);
            hataridok[i].pop_back();

            while (hataridok[i].empty() && sol[akt_nap].size() < k && i < n)
            {
                ++i;
            }
            if (sol[akt_nap].size() == k)
                break;
        }
    }

    for (int i = 1; i <= n; ++i)
    {
        sol_db += sol[i].size();
    }

    cout << sol_db << endl;
    for (int i = 1; i <= n; ++i)
    {
        for (auto &e : sol[i])
        {
            cout << e << " " << i << endl;
        }
    }
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
2Accepted27ms904 KiB
subtask25/5
3Accepted1ms508 KiB
4Accepted1ms316 KiB
5Accepted1ms316 KiB
6Accepted1ms316 KiB
7Accepted1ms316 KiB
subtask35/5
8Accepted1ms352 KiB
9Accepted1ms588 KiB
10Accepted1ms316 KiB
11Accepted2ms316 KiB
12Accepted2ms316 KiB
subtask45/5
13Accepted1ms316 KiB
14Accepted14ms476 KiB
15Accepted7ms516 KiB
16Accepted10ms524 KiB
17Accepted50ms820 KiB
subtask510/10
18Accepted1ms316 KiB
19Accepted2ms316 KiB
20Accepted3ms508 KiB
21Accepted48ms1004 KiB
22Accepted32ms820 KiB
23Accepted1ms316 KiB
24Accepted3ms508 KiB
25Accepted4ms532 KiB
26Accepted4ms316 KiB
27Accepted4ms564 KiB
subtask625/25
28Accepted2ms316 KiB
29Accepted1ms316 KiB
30Accepted3ms316 KiB
31Accepted59ms1052 KiB
32Accepted68ms1116 KiB
33Accepted59ms1036 KiB
34Accepted68ms1132 KiB
35Accepted70ms1132 KiB
36Accepted68ms1176 KiB
37Accepted71ms1120 KiB
38Accepted20ms768 KiB
39Accepted19ms564 KiB
40Accepted28ms608 KiB
41Accepted50ms1076 KiB
42Accepted43ms824 KiB
43Accepted27ms844 KiB
44Accepted39ms996 KiB
45Accepted35ms860 KiB
46Accepted46ms932 KiB
47Accepted54ms1052 KiB
48Accepted67ms1244 KiB
49Accepted70ms1076 KiB
50Accepted70ms1128 KiB
51Accepted71ms1076 KiB
52Accepted68ms1140 KiB