216892026-01-13 18:07:55algoproLegtávolabbi leszármazottcpp17Accepted 50/50109ms10292 KiB
// UUID: 86434f9b-170e-4bad-8369-7be05de2a6b3
#include <bits/stdc++.h>
using namespace std;

bool vis[100001];
vector<vector<int>> v;
vector<int> dp;

void dfs(int q){
    vis[q] = true;
    for(int i : v[q]){
        if(vis[i] == false){
            dp[i] = dp[q] + 1;
            dfs(i);
        }
    }
}

int main() {
    int n; cin >> n;
    v.resize(n + 1);
    dp.resize(n + 1);
    vector<bool> q(n + 1);
    for(int j = 0; j < n; j++){
        int a, b; cin >> a >> b;
        v[a].push_back(b);
        q[b] = true;
    }
    int root = 1;
    for(int j = 1; j <= n; j++){
        if(q[j] == false){
            root = j;
            break;
        }
    }
    dfs(root);
    int legnagyobb = 0, index = root;
    for(int j = 1; j <= n; j++){
        if(legnagyobb < dp[j]){
            legnagyobb = dp[j];
            index = j;
        }
    }
    cout << index;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms316 KiB
2Accepted0/082ms4404 KiB
3Accepted1/11ms316 KiB
4Accepted3/31ms316 KiB
5Accepted3/31ms316 KiB
6Accepted1/11ms316 KiB
7Accepted1/11ms316 KiB
8Accepted1/12ms500 KiB
9Accepted2/286ms4740 KiB
10Accepted3/386ms4812 KiB
11Accepted3/31ms428 KiB
12Accepted4/494ms7308 KiB
13Accepted4/498ms7476 KiB
14Accepted3/38ms820 KiB
15Accepted3/393ms7180 KiB
16Accepted3/382ms7568 KiB
17Accepted3/393ms7272 KiB
18Accepted4/465ms5172 KiB
19Accepted4/481ms6828 KiB
20Accepted4/4109ms10292 KiB