215982026-01-13 17:05:23algoproLegtávolabbi leszármazottcpp17Accepted 50/50101ms10036 KiB
// UUID: 2454341d-cf65-459b-b1a8-2920ecb49bfe
#include <bits/stdc++.h>
using namespace std;

void dfs(int a, int dis, const vector<vector<int>> &g, vector<int> &dist) {
	dist[a] = dis;
	if(g[a].size() > 0) {
		for(auto i : g[a]) {
			dfs(i, dis+1, g, dist);
		}
	}
}


int main() {
	int n; cin >> n;
	int ln = 0;
	int ans = 0;;
	vector<bool> indeg(n+1);
	vector<int> dist(n+1,0);
	vector<vector<int>> g(n+1, vector<int>(0));
	for(int i = 0; i < n-1; i++) {
		int a,b; cin >>a >> b;
		indeg[b] = true;
		g[a].push_back(b);
	}
	for(int i = 1; i <= n; i++) {
		if(indeg[i] == false) {
			dfs(i, 0, g, dist);
		}
	}
	for(int i = 1; i <= n; i++) {
		if(dist[i] > ln) {
			ln = dist[i];
			ans = i;
		}
	}
	cout << ans;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms316 KiB
2Accepted0/079ms4148 KiB
3Accepted1/11ms316 KiB
4Accepted3/31ms316 KiB
5Accepted3/31ms316 KiB
6Accepted1/11ms316 KiB
7Accepted1/11ms316 KiB
8Accepted1/11ms316 KiB
9Accepted2/286ms4656 KiB
10Accepted3/383ms4548 KiB
11Accepted3/31ms316 KiB
12Accepted4/490ms7288 KiB
13Accepted4/493ms7220 KiB
14Accepted3/38ms820 KiB
15Accepted3/389ms7076 KiB
16Accepted3/383ms7476 KiB
17Accepted3/392ms7000 KiB
18Accepted4/465ms5172 KiB
19Accepted4/482ms6708 KiB
20Accepted4/4101ms10036 KiB