257682026-03-01 20:43:04algoproLegtávolabbi leszármazottcpp17Time limit exceeded 15/50400ms12596 KiB
// UUID: 5ca764e6-25e0-460c-b624-855dee015b17
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

pair<int, int> dfs (int tav, int cs, vector<vector<int>>& gyerek, pair<int, int> best){
    if (gyerek[cs].empty()) return {tav, cs};
    for(int gy : gyerek[cs]){
        if (best.first < dfs(tav+1, gy, gyerek,best).first) best = dfs(tav+1, gy, gyerek,best);
        //cout<<best.first<<' '<<best.second<<'\n';
    }
    return best;
}

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

    vector<bool>fo(n, true);
    vector<vector<int>>gyerek(n+1);

    for(int i = 0; i <n; i++){
        int a, gy;
        cin >>a >>gy;
        gyerek[a].push_back(gy);
        fo[gy-1] = false;
    }
    int csf = -1;
    for(int i = 0; i <n; i++){
        if(fo[i]) csf = i+1;
    }
    pair<int, int> best =  dfs(0,csf,gyerek,{0, csf});

    cout<<best.second;
}
SubtaskSumTestVerdictTimeMemory
base15/50
1Accepted0/01ms316 KiB
2Time limit exceeded0/0379ms3884 KiB
3Accepted1/11ms316 KiB
4Accepted3/31ms316 KiB
5Accepted3/31ms316 KiB
6Accepted1/11ms316 KiB
7Accepted1/11ms384 KiB
8Time limit exceeded0/1400ms316 KiB
9Time limit exceeded0/2400ms4400 KiB
10Time limit exceeded0/3400ms4404 KiB
11Accepted3/31ms316 KiB
12Time limit exceeded0/4400ms8500 KiB
13Time limit exceeded0/4400ms8440 KiB
14Accepted3/332ms820 KiB
15Time limit exceeded0/3400ms8068 KiB
16Time limit exceeded0/3377ms9012 KiB
17Time limit exceeded0/3386ms8236 KiB
18Time limit exceeded0/4400ms5524 KiB
19Time limit exceeded0/4400ms7988 KiB
20Time limit exceeded0/4375ms12596 KiB