250292026-02-17 14:12:50sscrazyyFagyasztócpp17Wrong answer 30/7534ms536 KiB
// Freezer — Greedy Approach O(N² log N)
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector<int> s(n), m(n);
    for (int i = 0; i < n; i++) cin >> s[i] >> m[i];

    vector<bool> used(n, false);
    vector<pair<int,int>> result;
    int day = 1;

    while (true) {
        // Collect available meals: not used, quality >= 4, not expired
        vector<int> avail;
        for (int i = 0; i < n; i++)
            if (!used[i] && m[i] >= 4 && s[i] >= day)
                avail.push_back(i);

        // Sort by expiry (eat soonest-expiring first)
        sort(avail.begin(), avail.end(),
            [&](int a, int b){ return s[a] < s[b]; });

        // Try to find a valid pair
        bool found = false;
        for (int i = 0; i < (int)avail.size() && !found; i++)
            for (int j = i+1; j < (int)avail.size() && !found; j++)
                if (m[avail[i]] + m[avail[j]] >= 9) {
                    used[avail[i]] = used[avail[j]] = true;
                    result.push_back({avail[i]+1, avail[j]+1});
                    found = true;
                }
        if (!found) break;
        day++;
    }

    cout << result.size() << endl;
    for (auto& [a, b] : result)
        cout << a << " " << b << "\n";
    return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
subtask210/10
2Accepted1ms316 KiB
3Accepted1ms508 KiB
4Accepted1ms316 KiB
5Accepted1ms316 KiB
6Accepted1ms316 KiB
7Accepted1ms316 KiB
8Accepted1ms316 KiB
9Accepted1ms316 KiB
10Accepted1ms316 KiB
11Accepted1ms316 KiB
subtask320/20
12Accepted1ms368 KiB
13Accepted1ms316 KiB
14Accepted1ms316 KiB
15Accepted1ms316 KiB
16Accepted1ms316 KiB
17Accepted1ms316 KiB
18Accepted2ms316 KiB
19Accepted1ms316 KiB
20Accepted1ms316 KiB
21Accepted4ms372 KiB
22Accepted1ms324 KiB
23Accepted17ms412 KiB
24Accepted17ms424 KiB
25Accepted8ms316 KiB
26Accepted1ms316 KiB
27Accepted14ms424 KiB
28Accepted34ms424 KiB
29Accepted3ms316 KiB
30Accepted4ms316 KiB
31Accepted17ms508 KiB
subtask40/15
32Accepted1ms512 KiB
33Accepted1ms316 KiB
34Accepted1ms316 KiB
35Wrong answer1ms316 KiB
36Accepted3ms316 KiB
37Accepted3ms316 KiB
38Wrong answer1ms316 KiB
39Accepted2ms316 KiB
40Accepted2ms508 KiB
41Accepted8ms416 KiB
42Accepted3ms316 KiB
43Wrong answer16ms508 KiB
44Accepted1ms500 KiB
45Accepted4ms404 KiB
46Accepted17ms316 KiB
subtask50/15
47Accepted1ms508 KiB
48Accepted2ms316 KiB
49Wrong answer2ms512 KiB
50Accepted1ms316 KiB
51Accepted3ms508 KiB
52Accepted1ms316 KiB
53Wrong answer1ms316 KiB
54Accepted2ms316 KiB
55Accepted1ms512 KiB
56Accepted3ms316 KiB
57Accepted2ms316 KiB
58Wrong answer1ms316 KiB
59Wrong answer2ms316 KiB
60Accepted1ms376 KiB
61Accepted1ms316 KiB
subtask60/15
62Wrong answer3ms500 KiB
63Accepted4ms316 KiB
64Accepted10ms536 KiB
65Wrong answer25ms416 KiB
66Accepted28ms428 KiB
67Accepted1ms316 KiB
68Wrong answer4ms316 KiB
69Wrong answer2ms316 KiB
70Wrong answer3ms316 KiB
71Wrong answer14ms424 KiB
72Accepted2ms500 KiB
73Wrong answer7ms316 KiB
74Accepted9ms416 KiB
75Accepted3ms316 KiB
76Accepted1ms400 KiB