216892026-01-13 18:07:55algoproLegtávolabbi leszármazottcpp17Elfogadva 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/082ms4404 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva1/11ms316 KiB
7Elfogadva1/11ms316 KiB
8Elfogadva1/12ms500 KiB
9Elfogadva2/286ms4740 KiB
10Elfogadva3/386ms4812 KiB
11Elfogadva3/31ms428 KiB
12Elfogadva4/494ms7308 KiB
13Elfogadva4/498ms7476 KiB
14Elfogadva3/38ms820 KiB
15Elfogadva3/393ms7180 KiB
16Elfogadva3/382ms7568 KiB
17Elfogadva3/393ms7272 KiB
18Elfogadva4/465ms5172 KiB
19Elfogadva4/481ms6828 KiB
20Elfogadva4/4109ms10292 KiB