155362025-02-20 11:20:20999Legtávolabbi leszármazottcpp17Accepted 50/5093ms10120 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;


pair<int,int> dfs(vector<vector<int>>& v, int node){
    pair<int,int> p={1,node};
    for(int i : v[node]){
        pair<int,int> q=dfs(v,i);
        q.first++;
        p=max(p,q);
    }
    //cout<<node+1<<", "<<p.second+1<<endl;
    return p;
}

int main() {
    int n,k;cin>>n;k=n-1;
    vector<vector<int>> v(n);
    int magas=0;
    vector<int> befok(n);
    for(int i = 0;i<k;i++){
        int a,b;cin>>a>>b;
        v[--a].push_back(--b);
        befok[b]++;
    }
    for(int i = 0;i<n;i++)if(befok[i]==0)magas=i;
    cout<<dfs(v,magas).second+1<<endl;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms544 KiB
2Accepted0/075ms4148 KiB
3Accepted1/11ms316 KiB
4Accepted3/31ms500 KiB
5Accepted3/31ms316 KiB
6Accepted1/11ms508 KiB
7Accepted1/11ms500 KiB
8Accepted1/11ms316 KiB
9Accepted2/282ms4548 KiB
10Accepted3/382ms4776 KiB
11Accepted3/31ms316 KiB
12Accepted4/493ms7336 KiB
13Accepted4/489ms7220 KiB
14Accepted3/38ms820 KiB
15Accepted3/383ms7220 KiB
16Accepted3/386ms7476 KiB
17Accepted3/386ms7220 KiB
18Accepted4/465ms5172 KiB
19Accepted4/475ms6708 KiB
20Accepted4/492ms10120 KiB