259542026-03-08 23:28:09kukkermanBizonyításcpp17Elfogadva 50/50224ms5684 KiB
#include <iostream>
#include <vector>
#include <algorithm>

struct Ora {
    int x, y;
    bool dolgozat;
};
using Orak = std::vector<Ora>;

void beolvas(Orak &orak, int &n, std::istream &be = std::cin) {
    int q;
    be >> n >> q;

    orak.resize(q);
    for (auto &o : orak) {
        int t;
        be >> t >> o.x >> o.y;
        o.dolgozat = t == 2;
    }
}

void feldolgoz(const Orak &orak, int n) {
    const int q = static_cast<int>(orak.size());
    std::vector<std::vector<int>> d(n + 1, std::vector<int>(n + 1, q + 1));

    for (int i = 0; i < q; i++) {
        const auto &o = orak[i];
        if (!o.dolgozat) {
            d[o.x][o.y] = i + 1;
        }
    }

    for (int k = 1; k <= n; k++) {
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n; j++) {
                const auto ikj_ut = std::max(d[i][k], d[k][j]);
                d[i][j] = std::min(d[i][j], ikj_ut);
            }
        }
    }

    for (int i = 0; i < q; i++) {
        const auto &o = orak[i];
        if (o.dolgozat) {
            std::cout << (d[o.x][o.y] < i + 1 ? "IGEN\n" : "NEM\n");
        }
    }
}

int main() {
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(nullptr);
    std::cout.tie(nullptr);

    Orak orak;
    int n;
    beolvas(orak, n);
    feldolgoz(orak, n);

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva218ms4660 KiB
subtask210/10
3Elfogadva2ms512 KiB
4Elfogadva12ms564 KiB
5Elfogadva165ms1844 KiB
6Elfogadva74ms1448 KiB
7Elfogadva65ms1476 KiB
8Elfogadva18ms564 KiB
9Elfogadva1ms512 KiB
10Elfogadva12ms736 KiB
11Elfogadva45ms1276 KiB
12Elfogadva129ms1668 KiB
subtask315/15
13Elfogadva1ms316 KiB
14Elfogadva1ms508 KiB
15Elfogadva1ms508 KiB
16Elfogadva1ms500 KiB
17Elfogadva1ms316 KiB
18Elfogadva1ms316 KiB
19Elfogadva1ms316 KiB
20Elfogadva1ms316 KiB
21Elfogadva1ms316 KiB
22Elfogadva1ms316 KiB
23Elfogadva1ms316 KiB
24Elfogadva1ms316 KiB
25Elfogadva2ms628 KiB
26Elfogadva2ms316 KiB
27Elfogadva1ms420 KiB
28Elfogadva1ms316 KiB
29Elfogadva1ms316 KiB
30Elfogadva1ms332 KiB
31Elfogadva1ms316 KiB
32Elfogadva1ms316 KiB
33Elfogadva1ms424 KiB
34Elfogadva1ms512 KiB
35Elfogadva1ms508 KiB
36Elfogadva1ms500 KiB
37Elfogadva1ms316 KiB
38Elfogadva1ms316 KiB
subtask425/25
39Elfogadva1ms316 KiB
40Elfogadva218ms4712 KiB
41Elfogadva2ms512 KiB
42Elfogadva12ms564 KiB
43Elfogadva165ms1844 KiB
44Elfogadva74ms1448 KiB
45Elfogadva65ms1476 KiB
46Elfogadva18ms564 KiB
47Elfogadva1ms512 KiB
48Elfogadva12ms736 KiB
49Elfogadva45ms1276 KiB
50Elfogadva129ms1668 KiB
51Elfogadva1ms508 KiB
52Elfogadva1ms508 KiB
53Elfogadva1ms500 KiB
54Elfogadva1ms316 KiB
55Elfogadva1ms316 KiB
56Elfogadva1ms316 KiB
57Elfogadva1ms316 KiB
58Elfogadva1ms316 KiB
59Elfogadva1ms316 KiB
60Elfogadva1ms316 KiB
61Elfogadva1ms316 KiB
62Elfogadva2ms628 KiB
63Elfogadva2ms316 KiB
64Elfogadva1ms420 KiB
65Elfogadva1ms316 KiB
66Elfogadva1ms316 KiB
67Elfogadva1ms332 KiB
68Elfogadva1ms316 KiB
69Elfogadva1ms316 KiB
70Elfogadva1ms424 KiB
71Elfogadva1ms512 KiB
72Elfogadva1ms508 KiB
73Elfogadva1ms500 KiB
74Elfogadva1ms316 KiB
75Elfogadva1ms316 KiB
76Elfogadva23ms1844 KiB
77Elfogadva64ms1268 KiB
78Elfogadva143ms3892 KiB
79Elfogadva52ms1260 KiB
80Elfogadva100ms2868 KiB
81Elfogadva23ms1588 KiB
82Elfogadva28ms1584 KiB
83Elfogadva39ms1356 KiB
84Elfogadva72ms1844 KiB
85Elfogadva128ms2864 KiB
86Elfogadva41ms2356 KiB
87Elfogadva107ms2848 KiB
88Elfogadva50ms1332 KiB
89Elfogadva63ms1540 KiB
90Elfogadva184ms4652 KiB
91Elfogadva199ms3748 KiB
92Elfogadva182ms4496 KiB
93Elfogadva160ms3392 KiB
94Elfogadva181ms4660 KiB
95Elfogadva188ms3124 KiB
96Elfogadva199ms3720 KiB
97Elfogadva196ms3380 KiB
98Elfogadva194ms3672 KiB
99Elfogadva204ms4148 KiB
100Elfogadva193ms5172 KiB
101Elfogadva194ms5172 KiB
102Elfogadva224ms5612 KiB
103Elfogadva224ms5684 KiB
104Elfogadva186ms5172 KiB