200082025-12-31 00:17:52szabelrBizonyításcpp17Elfogadva 50/50303ms2128 KiB
// Bizonyítás.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#include <iostream>
#include <vector>

using namespace std;

// Az elérhetőségi mátrix: matrix[honnan][hova]
bool elerheto[501][501];

int main() {
    // Gyorsítás: a standard bemenet/kimenet szinkronizációjának kikapcsolása
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    int n, q;
    if (!(cin >> n >> q)) return 0;

    // Kezdetben minden állításból levezethető saját maga (reflexivitás)
    for (int i = 1; i <= n; i++) {
        elerheto[i][i] = true;
    }

    for (int i = 0; i < q; i++) {
        int tipus, x, y;
        cin >> tipus >> x >> y;

        if (tipus == 2) {
            // RÖPDOLGOZAT: Megnézzük, van-e levezetés x-ből y-ba
            if (elerheto[x][y]) {
                cout << "IGEN\n";
            }
            else {
                cout << "NEM\n";
            }
        }
        else if (tipus == 1) {
            // ÚJ BIZONYÍTÁS: x -> y
            // Ha már tudjuk, hogy x-ből elérhető y, nem kell tennünk semmit
            if (elerheto[x][y]) continue;

            // 1. Gyűjtsük össze az "Elődöket" (akik látják x-et)
            vector<int> elodok;
            for (int j = 1; j <= n; j++) {
                if (elerheto[j][x]) {
                    elodok.push_back(j);
                }
            }

            // 2. Gyűjtsük össze az "Utódokat" (akit y lát)
            vector<int> utodok;
            for (int j = 1; j <= n; j++) {
                if (elerheto[y][j]) {
                    utodok.push_back(j);
                }
            }

            // 3. A "Híd" megépítése: Minden elődöt összekötünk minden utóddal
            for (int forras : elodok) {
                for (int cel : utodok) {
                    elerheto[forras][cel] = true;
                }
            }
        }
    }

    return 0;
}
// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu

// Tips for Getting Started: 
//   1. Use the Solution Explorer window to add/manage files
//   2. Use the Team Explorer window to connect to source control
//   3. Use the Output window to see build output and other messages
//   4. Use the Error List window to view errors
//   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
//   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva86ms1076 KiB
subtask210/10
3Elfogadva2ms500 KiB
4Elfogadva4ms524 KiB
5Elfogadva35ms760 KiB
6Elfogadva20ms564 KiB
7Elfogadva23ms680 KiB
8Elfogadva2ms316 KiB
9Elfogadva1ms316 KiB
10Elfogadva7ms316 KiB
11Elfogadva17ms572 KiB
12Elfogadva28ms564 KiB
subtask315/15
13Elfogadva1ms316 KiB
14Elfogadva1ms508 KiB
15Elfogadva1ms316 KiB
16Elfogadva1ms512 KiB
17Elfogadva1ms432 KiB
18Elfogadva1ms508 KiB
19Elfogadva1ms500 KiB
20Elfogadva1ms316 KiB
21Elfogadva1ms316 KiB
22Elfogadva1ms316 KiB
23Elfogadva2ms316 KiB
24Elfogadva1ms316 KiB
25Elfogadva1ms444 KiB
26Elfogadva1ms316 KiB
27Elfogadva1ms316 KiB
28Elfogadva1ms500 KiB
29Elfogadva1ms316 KiB
30Elfogadva1ms316 KiB
31Elfogadva1ms316 KiB
32Elfogadva1ms316 KiB
33Elfogadva1ms316 KiB
34Elfogadva1ms316 KiB
35Elfogadva1ms500 KiB
36Elfogadva1ms316 KiB
37Elfogadva1ms316 KiB
38Elfogadva1ms316 KiB
subtask425/25
39Elfogadva1ms316 KiB
40Elfogadva87ms1212 KiB
41Elfogadva2ms500 KiB
42Elfogadva4ms524 KiB
43Elfogadva35ms760 KiB
44Elfogadva20ms564 KiB
45Elfogadva23ms680 KiB
46Elfogadva2ms316 KiB
47Elfogadva1ms316 KiB
48Elfogadva7ms316 KiB
49Elfogadva17ms572 KiB
50Elfogadva28ms564 KiB
51Elfogadva1ms508 KiB
52Elfogadva1ms316 KiB
53Elfogadva1ms512 KiB
54Elfogadva1ms432 KiB
55Elfogadva1ms508 KiB
56Elfogadva1ms500 KiB
57Elfogadva1ms316 KiB
58Elfogadva1ms316 KiB
59Elfogadva1ms316 KiB
60Elfogadva2ms316 KiB
61Elfogadva1ms316 KiB
62Elfogadva1ms444 KiB
63Elfogadva1ms316 KiB
64Elfogadva1ms316 KiB
65Elfogadva1ms500 KiB
66Elfogadva1ms316 KiB
67Elfogadva1ms316 KiB
68Elfogadva1ms316 KiB
69Elfogadva1ms316 KiB
70Elfogadva1ms316 KiB
71Elfogadva1ms316 KiB
72Elfogadva1ms500 KiB
73Elfogadva1ms316 KiB
74Elfogadva1ms316 KiB
75Elfogadva1ms316 KiB
76Elfogadva23ms856 KiB
77Elfogadva14ms624 KiB
78Elfogadva67ms1188 KiB
79Elfogadva13ms568 KiB
80Elfogadva48ms816 KiB
81Elfogadva20ms680 KiB
82Elfogadva21ms564 KiB
83Elfogadva18ms568 KiB
84Elfogadva29ms564 KiB
85Elfogadva52ms904 KiB
86Elfogadva37ms1340 KiB
87Elfogadva48ms908 KiB
88Elfogadva18ms564 KiB
89Elfogadva23ms608 KiB
90Elfogadva59ms1332 KiB
91Elfogadva68ms820 KiB
92Elfogadva59ms1316 KiB
93Elfogadva59ms820 KiB
94Elfogadva59ms1328 KiB
95Elfogadva41ms928 KiB
96Elfogadva57ms1072 KiB
97Elfogadva59ms2064 KiB
98Elfogadva43ms1076 KiB
99Elfogadva57ms1180 KiB
100Elfogadva256ms1580 KiB
101Elfogadva259ms1680 KiB
102Elfogadva303ms2100 KiB
103Elfogadva303ms2128 KiB
104Elfogadva246ms1332 KiB