257682026-03-01 20:43:04algoproLegtávolabbi leszármazottcpp17Időlimit túllépés 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base15/50
1Elfogadva0/01ms316 KiB
2Időlimit túllépés0/0379ms3884 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva1/11ms316 KiB
7Elfogadva1/11ms384 KiB
8Időlimit túllépés0/1400ms316 KiB
9Időlimit túllépés0/2400ms4400 KiB
10Időlimit túllépés0/3400ms4404 KiB
11Elfogadva3/31ms316 KiB
12Időlimit túllépés0/4400ms8500 KiB
13Időlimit túllépés0/4400ms8440 KiB
14Elfogadva3/332ms820 KiB
15Időlimit túllépés0/3400ms8068 KiB
16Időlimit túllépés0/3377ms9012 KiB
17Időlimit túllépés0/3386ms8236 KiB
18Időlimit túllépés0/4400ms5524 KiB
19Időlimit túllépés0/4400ms7988 KiB
20Időlimit túllépés0/4375ms12596 KiB