246272026-02-13 08:32:28Leventusz09Bizonyításcpp17Elfogadva 50/50666ms5444 KiB
#include <iostream>
#include <vector>
#define DEBUG false
#define MAX_T 2'000'000'000
using namespace std;

struct Statement {
    int x;
    int y;
    int t;
};

int RM[500][500];
// -1 => nincs �t

int main()
{
    cin.tie(0);
    ios::sync_with_stdio(0);
    int N, Q;
    cin >> N >> Q;

    for(int i=0; i<N; i++) for(int j=0; j<N; j++) RM[i][j] = MAX_T;

    vector<Statement> T;
    for(int q=0; q<Q; q++){
        int t, x, y;
        cin >> t >> x >> y;
        x--; y--;
        if(t == 1){
            RM[x][y] = q + 1;
            #if DEBUG
            cout << "D" << RM[x][y] << endl;
            #endif
        }else{
            Statement question;
            question.x = x;
            question.y = y;
            question.t = q+1;
            T.push_back(question);
        }
    }

    ///
    for(int k=0; k<N; k++){
        for(int i=0; i<N; i++){
            if(i==k) continue;
            for(int j=0; j<N; j++){
                if(j==k || j==i) continue;
                if(RM[i][j] > max(RM[i][k], RM[k][j])) RM[i][j] = max( RM[i][k], RM[k][j] );
            }
        }
    }

    #if DEBUG
    for(int i=0; i<N; i++){
        for(int j=0; j<N; j++){
            cout << RM[i][j] << " ";
        }
        cout << endl;
    }
    #endif


    for(int i=0; i<T.size(); i++){
        int rm = RM[T[i].x][T[i].y];
        if(rm == MAX_T || rm > T[i].t) cout << "NEM" << endl;
        else cout << "IGEN" << endl;
    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva451ms3236 KiB
subtask210/10
3Elfogadva4ms564 KiB
4Elfogadva24ms820 KiB
5Elfogadva289ms1972 KiB
6Elfogadva135ms1332 KiB
7Elfogadva128ms1524 KiB
8Elfogadva28ms912 KiB
9Elfogadva2ms564 KiB
10Elfogadva28ms948 KiB
11Elfogadva90ms1524 KiB
12Elfogadva231ms1656 KiB
subtask315/15
13Elfogadva1ms508 KiB
14Elfogadva2ms500 KiB
15Elfogadva1ms492 KiB
16Elfogadva2ms316 KiB
17Elfogadva1ms500 KiB
18Elfogadva2ms316 KiB
19Elfogadva1ms316 KiB
20Elfogadva1ms316 KiB
21Elfogadva1ms372 KiB
22Elfogadva1ms316 KiB
23Elfogadva2ms316 KiB
24Elfogadva1ms316 KiB
25Elfogadva2ms316 KiB
26Elfogadva2ms316 KiB
27Elfogadva1ms316 KiB
28Elfogadva1ms316 KiB
29Elfogadva2ms316 KiB
30Elfogadva1ms316 KiB
31Elfogadva1ms316 KiB
32Elfogadva1ms316 KiB
33Elfogadva1ms500 KiB
34Elfogadva1ms316 KiB
35Elfogadva1ms508 KiB
36Elfogadva1ms316 KiB
37Elfogadva1ms316 KiB
38Elfogadva1ms316 KiB
subtask425/25
39Elfogadva1ms508 KiB
40Elfogadva488ms3348 KiB
41Elfogadva4ms564 KiB
42Elfogadva24ms820 KiB
43Elfogadva289ms1972 KiB
44Elfogadva135ms1332 KiB
45Elfogadva128ms1524 KiB
46Elfogadva28ms912 KiB
47Elfogadva2ms564 KiB
48Elfogadva28ms948 KiB
49Elfogadva90ms1524 KiB
50Elfogadva231ms1656 KiB
51Elfogadva2ms500 KiB
52Elfogadva1ms492 KiB
53Elfogadva2ms316 KiB
54Elfogadva1ms500 KiB
55Elfogadva2ms316 KiB
56Elfogadva1ms316 KiB
57Elfogadva1ms316 KiB
58Elfogadva1ms372 KiB
59Elfogadva1ms316 KiB
60Elfogadva2ms316 KiB
61Elfogadva1ms316 KiB
62Elfogadva2ms316 KiB
63Elfogadva2ms316 KiB
64Elfogadva1ms316 KiB
65Elfogadva1ms316 KiB
66Elfogadva2ms316 KiB
67Elfogadva1ms316 KiB
68Elfogadva1ms316 KiB
69Elfogadva1ms316 KiB
70Elfogadva1ms500 KiB
71Elfogadva1ms316 KiB
72Elfogadva1ms508 KiB
73Elfogadva1ms316 KiB
74Elfogadva1ms316 KiB
75Elfogadva1ms316 KiB
76Elfogadva125ms2220 KiB
77Elfogadva112ms1332 KiB
78Elfogadva351ms3184 KiB
79Elfogadva97ms1332 KiB
80Elfogadva250ms2736 KiB
81Elfogadva123ms1708 KiB
82Elfogadva98ms1704 KiB
83Elfogadva79ms1268 KiB
84Elfogadva153ms1836 KiB
85Elfogadva264ms2216 KiB
86Elfogadva181ms2728 KiB
87Elfogadva248ms2732 KiB
88Elfogadva111ms1524 KiB
89Elfogadva119ms1520 KiB
90Elfogadva561ms4764 KiB
91Elfogadva384ms2408 KiB
92Elfogadva537ms4768 KiB
93Elfogadva324ms2220 KiB
94Elfogadva528ms4764 KiB
95Elfogadva395ms2984 KiB
96Elfogadva384ms2984 KiB
97Elfogadva335ms2168 KiB
98Elfogadva418ms3428 KiB
99Elfogadva467ms3496 KiB
100Elfogadva587ms4772 KiB
101Elfogadva569ms4764 KiB
102Elfogadva603ms5280 KiB
103Elfogadva666ms5444 KiB
104Elfogadva532ms4768 KiB