246272026-02-13 08:32:28Leventusz09Bizonyításcpp17Accepted 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;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
2Accepted451ms3236 KiB
subtask210/10
3Accepted4ms564 KiB
4Accepted24ms820 KiB
5Accepted289ms1972 KiB
6Accepted135ms1332 KiB
7Accepted128ms1524 KiB
8Accepted28ms912 KiB
9Accepted2ms564 KiB
10Accepted28ms948 KiB
11Accepted90ms1524 KiB
12Accepted231ms1656 KiB
subtask315/15
13Accepted1ms508 KiB
14Accepted2ms500 KiB
15Accepted1ms492 KiB
16Accepted2ms316 KiB
17Accepted1ms500 KiB
18Accepted2ms316 KiB
19Accepted1ms316 KiB
20Accepted1ms316 KiB
21Accepted1ms372 KiB
22Accepted1ms316 KiB
23Accepted2ms316 KiB
24Accepted1ms316 KiB
25Accepted2ms316 KiB
26Accepted2ms316 KiB
27Accepted1ms316 KiB
28Accepted1ms316 KiB
29Accepted2ms316 KiB
30Accepted1ms316 KiB
31Accepted1ms316 KiB
32Accepted1ms316 KiB
33Accepted1ms500 KiB
34Accepted1ms316 KiB
35Accepted1ms508 KiB
36Accepted1ms316 KiB
37Accepted1ms316 KiB
38Accepted1ms316 KiB
subtask425/25
39Accepted1ms508 KiB
40Accepted488ms3348 KiB
41Accepted4ms564 KiB
42Accepted24ms820 KiB
43Accepted289ms1972 KiB
44Accepted135ms1332 KiB
45Accepted128ms1524 KiB
46Accepted28ms912 KiB
47Accepted2ms564 KiB
48Accepted28ms948 KiB
49Accepted90ms1524 KiB
50Accepted231ms1656 KiB
51Accepted2ms500 KiB
52Accepted1ms492 KiB
53Accepted2ms316 KiB
54Accepted1ms500 KiB
55Accepted2ms316 KiB
56Accepted1ms316 KiB
57Accepted1ms316 KiB
58Accepted1ms372 KiB
59Accepted1ms316 KiB
60Accepted2ms316 KiB
61Accepted1ms316 KiB
62Accepted2ms316 KiB
63Accepted2ms316 KiB
64Accepted1ms316 KiB
65Accepted1ms316 KiB
66Accepted2ms316 KiB
67Accepted1ms316 KiB
68Accepted1ms316 KiB
69Accepted1ms316 KiB
70Accepted1ms500 KiB
71Accepted1ms316 KiB
72Accepted1ms508 KiB
73Accepted1ms316 KiB
74Accepted1ms316 KiB
75Accepted1ms316 KiB
76Accepted125ms2220 KiB
77Accepted112ms1332 KiB
78Accepted351ms3184 KiB
79Accepted97ms1332 KiB
80Accepted250ms2736 KiB
81Accepted123ms1708 KiB
82Accepted98ms1704 KiB
83Accepted79ms1268 KiB
84Accepted153ms1836 KiB
85Accepted264ms2216 KiB
86Accepted181ms2728 KiB
87Accepted248ms2732 KiB
88Accepted111ms1524 KiB
89Accepted119ms1520 KiB
90Accepted561ms4764 KiB
91Accepted384ms2408 KiB
92Accepted537ms4768 KiB
93Accepted324ms2220 KiB
94Accepted528ms4764 KiB
95Accepted395ms2984 KiB
96Accepted384ms2984 KiB
97Accepted335ms2168 KiB
98Accepted418ms3428 KiB
99Accepted467ms3496 KiB
100Accepted587ms4772 KiB
101Accepted569ms4764 KiB
102Accepted603ms5280 KiB
103Accepted666ms5444 KiB
104Accepted532ms4768 KiB