251182026-02-18 01:01:25999Bizonyításcpp17Time limit exceeded 25/501.088s4404 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;
#define int long long
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")


vector<vector<int>> v;
int b[501][501];
vector<int> vis;

bool dfs(int x, int y){
    vis[y]=1;
    if(b[x][y])return 1;
    bool temp=false;
    for(int i : v[y]){
        if(vis[i])continue;
        temp|=dfs(x, i);
    }
    b[x][y]=temp;
    return temp;
}

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n,q;cin>>n>>q;
    v.resize(n);
    vis.resize(n);
    for(int i = 0;i<n;i++)b[i][i]=1;
    while(q--){
        int t;cin>>t;
        if(t==1){
            int x,y;
            cin>>x>>y;
            v[--y].push_back(--x);
            for(int i = 0;i<n;i++){
                b[i][y]|=(b[x][i]==1&&b[i][y]==1);
            }
        }
        else{
            for(int &i : vis)i=0;
            int x,y;cin>>x>>y;
            x--;y--;
            cout<<(dfs(x,y)?"IGEN":"NEM")<<'\n';
            /*for(vector<int> i : b){
                for(int j : i){
                    cerr<<j<<' ';
                }cerr<<endl;
            }cerr<<endl<<endl<<"///////////////////"<<endl<<endl;*/
        }
    }
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
2Accepted273ms4404 KiB
subtask210/10
3Accepted3ms800 KiB
4Accepted10ms1076 KiB
5Accepted79ms2688 KiB
6Accepted52ms2164 KiB
7Accepted50ms2100 KiB
8Accepted2ms1332 KiB
9Accepted2ms564 KiB
10Accepted12ms1172 KiB
11Accepted37ms1960 KiB
12Accepted57ms2572 KiB
subtask315/15
13Accepted1ms316 KiB
14Accepted2ms572 KiB
15Accepted1ms512 KiB
16Accepted1ms316 KiB
17Accepted1ms316 KiB
18Accepted1ms564 KiB
19Accepted1ms568 KiB
20Accepted1ms316 KiB
21Accepted1ms316 KiB
22Accepted1ms564 KiB
23Accepted2ms804 KiB
24Accepted1ms316 KiB
25Accepted1ms572 KiB
26Accepted1ms564 KiB
27Accepted1ms316 KiB
28Accepted1ms564 KiB
29Accepted2ms316 KiB
30Accepted1ms564 KiB
31Accepted1ms332 KiB
32Accepted1ms508 KiB
33Accepted1ms316 KiB
34Accepted1ms316 KiB
35Accepted1ms316 KiB
36Accepted1ms564 KiB
37Accepted3ms500 KiB
38Accepted3ms764 KiB
subtask40/25
39Accepted1ms316 KiB
40Accepted277ms4256 KiB
41Accepted3ms800 KiB
42Accepted10ms1076 KiB
43Accepted79ms2688 KiB
44Accepted52ms2164 KiB
45Accepted50ms2100 KiB
46Accepted2ms1332 KiB
47Accepted2ms564 KiB
48Accepted12ms1172 KiB
49Accepted37ms1960 KiB
50Accepted57ms2572 KiB
51Accepted2ms572 KiB
52Accepted1ms512 KiB
53Accepted1ms316 KiB
54Accepted1ms316 KiB
55Accepted1ms564 KiB
56Accepted1ms568 KiB
57Accepted1ms316 KiB
58Accepted1ms316 KiB
59Accepted1ms564 KiB
60Accepted2ms804 KiB
61Accepted1ms316 KiB
62Accepted1ms572 KiB
63Accepted1ms564 KiB
64Accepted1ms316 KiB
65Accepted1ms564 KiB
66Accepted2ms316 KiB
67Accepted1ms564 KiB
68Accepted1ms332 KiB
69Accepted1ms508 KiB
70Accepted1ms316 KiB
71Accepted1ms316 KiB
72Accepted1ms316 KiB
73Accepted1ms564 KiB
74Accepted3ms500 KiB
75Accepted3ms764 KiB
76Accepted26ms996 KiB
77Accepted25ms1872 KiB
78Accepted170ms3396 KiB
79Accepted25ms1848 KiB
80Accepted115ms2868 KiB
81Accepted26ms1332 KiB
82Accepted32ms1592 KiB
83Accepted45ms2104 KiB
84Accepted72ms2612 KiB
85Accepted150ms3176 KiB
86Accepted46ms1760 KiB
87Accepted123ms3124 KiB
88Accepted41ms2012 KiB
89Accepted50ms2056 KiB
90Accepted72ms3044 KiB
91Accepted337ms4064 KiB
92Accepted71ms3076 KiB
93Accepted282ms3376 KiB
94Accepted72ms3124 KiB
95Accepted119ms3136 KiB
96Accepted268ms3840 KiB
97Accepted337ms4036 KiB
98Accepted89ms3124 KiB
99Accepted192ms3572 KiB
100Time limit exceeded1.083s2832 KiB
101Time limit exceeded1.088s3004 KiB
102Time limit exceeded1.083s2904 KiB
103Time limit exceeded1.083s3124 KiB
104Time limit exceeded1.088s2896 KiB