216902026-01-13 18:07:55algoproLegtávolabbi leszármazottcpp17Accepted 50/50112ms11388 KiB
// UUID: d027f582-603e-4997-b691-61601b70ca51
#include <bits/stdc++.h>
using namespace std;

vector<vector<int>> graf;

pair<int, int> dfs(int u, int v) {
    int maxx=0, maxv=v;
    pair<int, int> c;

    for(auto x : graf[v]) {

        if(x != u){

            c = dfs(v, x);

            //cerr << c.first << ' ' << c.second << '\n';

            if(c.first > maxx) {
                maxx = c.first;
                maxv = c.second;
            }

        }

    }
    
    return {maxx+1, maxv};
}

int main() {
	int n, o = 0; 
    cin >> n;
    vector<bool> os(n+1, true);

    graf.resize(n+1);
    if (n==1){
        return 0;
    }
    for(int i=0;i<n;i++) {

        int a, f; 
        cin >> a >> f;

        //if(o == 0 || o == f) o = a;
        os[f] = false;

        graf[a].push_back(f);
        graf[f].push_back(a);

    }

    for(int i=0;i<=n;i++) {
        if(os[i]) o=i;
    }

    //cerr << o;
    cout << dfs(o, o).second;

}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms316 KiB
2Accepted0/089ms5188 KiB
3Accepted1/11ms316 KiB
4Accepted3/31ms332 KiB
5Accepted3/31ms316 KiB
6Accepted1/11ms316 KiB
7Accepted1/11ms404 KiB
8Accepted1/12ms316 KiB
9Accepted2/2103ms5944 KiB
10Accepted3/397ms5932 KiB
11Accepted3/31ms316 KiB
12Accepted4/4104ms8692 KiB
13Accepted4/4108ms8756 KiB
14Accepted3/38ms820 KiB
15Accepted3/3112ms7888 KiB
16Accepted3/396ms8756 KiB
17Accepted3/3108ms8500 KiB
18Accepted4/476ms5684 KiB
19Accepted4/487ms8124 KiB
20Accepted4/4101ms11388 KiB