230392026-01-16 11:04:57AblablablaTom és Jerry 3cpp17Accepted 50/5074ms4256 KiB
#include <bits/stdc++.h>

using namespace std;

vector<vector<int>> csucsok;
vector<int> tavok;
int maxi;

void tav(int akt){
    if(tavok[maxi] < tavok[akt]){
        maxi = akt;
    }

    for(int x : csucsok[akt]){
        if(tavok[x] == -1){
            tavok[x] = tavok[akt] + 1;
            tav(x);
        }
    }
}



int jerry(int akt, int ido, int elozo = -1){
    if(tavok[akt] <= ido){
        return 0;
    }

    int vissza = tavok[akt];

    for(int x : csucsok[akt]){
        if(x == elozo) continue;

        vissza = max(vissza, jerry(x, ido + 1, akt));
    }

    return vissza;
}

int keres(int akt, int elozo = -1){
    int vissza = 0;

    for(int x : csucsok[akt]){
        if(x == elozo) continue;

        vissza = max(vissza, keres(x, akt) + 1);
    }

    return vissza;
}

void solve(){
    int n, j, t, k;
    cin >> n >> t >> j >> k;
    j--; t--;

    csucsok.assign(n, vector<int>());
    for(int i = 0; i < n - 1; i++){
        int a, b;
        cin >> a >> b;
        a--; b--;

        csucsok[a].push_back(b);
        csucsok[b].push_back(a);
    }

    tavok.assign(n, -1);
    tavok[t] = 0;
    maxi = t;


    tav(t);

    int a = jerry(j, 1);

    if(a <= k){
        cout << "IGEN\n";
        return;
    }

    int b = keres(maxi);

    if((b+1)/2 <= k){
        cout << "IGEN\n";
    } else{
        cout << "NEM\n";
    }
}

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);

    int t;
    cin >> t;

    while(t--){
        solve();
    }
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms316 KiB
2Accepted0/02ms316 KiB
3Accepted5/51ms316 KiB
4Accepted1/12ms316 KiB
5Accepted1/11ms536 KiB
6Accepted1/12ms316 KiB
7Accepted1/11ms316 KiB
8Accepted1/12ms572 KiB
9Accepted1/11ms316 KiB
10Accepted1/11ms316 KiB
11Accepted2/21ms316 KiB
12Accepted2/21ms316 KiB
13Accepted1/11ms316 KiB
14Accepted2/270ms3832 KiB
15Accepted2/261ms2940 KiB
16Accepted2/271ms3824 KiB
17Accepted2/272ms4244 KiB
18Accepted2/271ms3892 KiB
19Accepted2/270ms3812 KiB
20Accepted2/252ms4192 KiB
21Accepted2/259ms2964 KiB
22Accepted2/259ms3028 KiB
23Accepted3/372ms4256 KiB
24Accepted2/271ms3664 KiB
25Accepted3/365ms3892 KiB
26Accepted2/274ms4212 KiB
27Accepted2/259ms2936 KiB
28Accepted3/359ms3104 KiB