251192026-02-18 01:06:20999Bizonyításcpp17Time limit exceeded 25/501.1s4588 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);
            b[x][y]=1;
            for(int i = 0;i<n;i++){
                b[x][i]|=b[y][i]==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
2Accepted119ms4588 KiB
subtask210/10
3Accepted2ms756 KiB
4Accepted4ms1076 KiB
5Accepted25ms2612 KiB
6Accepted19ms2356 KiB
7Accepted20ms2176 KiB
8Accepted2ms1332 KiB
9Accepted1ms564 KiB
10Accepted7ms1076 KiB
11Accepted17ms1956 KiB
12Accepted18ms2356 KiB
subtask315/15
13Accepted1ms316 KiB
14Accepted1ms808 KiB
15Accepted1ms316 KiB
16Accepted1ms316 KiB
17Accepted1ms316 KiB
18Accepted1ms564 KiB
19Accepted1ms564 KiB
20Accepted1ms316 KiB
21Accepted1ms316 KiB
22Accepted1ms756 KiB
23Accepted1ms564 KiB
24Accepted1ms316 KiB
25Accepted1ms564 KiB
26Accepted1ms564 KiB
27Accepted1ms316 KiB
28Accepted1ms564 KiB
29Accepted1ms316 KiB
30Accepted1ms564 KiB
31Accepted1ms316 KiB
32Accepted1ms384 KiB
33Accepted1ms316 KiB
34Accepted1ms316 KiB
35Accepted1ms316 KiB
36Accepted1ms564 KiB
37Accepted1ms316 KiB
38Accepted1ms360 KiB
subtask40/25
39Accepted1ms316 KiB
40Accepted118ms4228 KiB
41Accepted2ms756 KiB
42Accepted4ms1076 KiB
43Accepted25ms2612 KiB
44Accepted19ms2356 KiB
45Accepted20ms2176 KiB
46Accepted2ms1332 KiB
47Accepted1ms564 KiB
48Accepted7ms1076 KiB
49Accepted17ms1956 KiB
50Accepted18ms2356 KiB
51Accepted1ms808 KiB
52Accepted1ms316 KiB
53Accepted1ms316 KiB
54Accepted1ms316 KiB
55Accepted1ms564 KiB
56Accepted1ms564 KiB
57Accepted1ms316 KiB
58Accepted1ms316 KiB
59Accepted1ms756 KiB
60Accepted1ms564 KiB
61Accepted1ms316 KiB
62Accepted1ms564 KiB
63Accepted1ms564 KiB
64Accepted1ms316 KiB
65Accepted1ms564 KiB
66Accepted1ms316 KiB
67Accepted1ms564 KiB
68Accepted1ms316 KiB
69Accepted1ms384 KiB
70Accepted1ms316 KiB
71Accepted1ms316 KiB
72Accepted1ms316 KiB
73Accepted1ms564 KiB
74Accepted1ms316 KiB
75Accepted1ms360 KiB
76Accepted25ms972 KiB
77Accepted12ms1904 KiB
78Accepted89ms3388 KiB
79Accepted10ms1848 KiB
80Accepted61ms2868 KiB
81Accepted23ms1512 KiB
82Accepted26ms1652 KiB
83Accepted21ms2112 KiB
84Accepted37ms2572 KiB
85Accepted68ms3268 KiB
86Accepted39ms1840 KiB
87Accepted63ms3124 KiB
88Accepted21ms1904 KiB
89Accepted25ms2164 KiB
90Accepted72ms3124 KiB
91Accepted86ms3952 KiB
92Accepted71ms3124 KiB
93Accepted72ms3376 KiB
94Accepted71ms3124 KiB
95Accepted50ms3124 KiB
96Accepted71ms3892 KiB
97Accepted75ms3864 KiB
98Accepted52ms3124 KiB
99Accepted71ms3444 KiB
100Time limit exceeded1.1s3384 KiB
101Time limit exceeded1.1s3384 KiB
102Time limit exceeded1.078s3428 KiB
103Time limit exceeded1.078s3380 KiB
104Time limit exceeded1.087s3380 KiB