146012025-01-20 13:20:36Leventusz09Legtávolabbi leszármazottcpp17Wrong answer 1/5097ms10428 KiB
#include <iostream>
#include <vector>

using namespace std;

struct Vertex {
	int parent = -1;
	vector<int> children;
};

int P;
Vertex vertices[100000];

pair<int, int> f(int i) {
	if (vertices[i].children.empty()) return { 0, i };
	
	int mx = -1;
	int mxi = -1;
	for (int child : vertices[i].children) {
		int fchild = f(child).first;
		if (fchild > mx) {
			mx = fchild;
			mxi = child;
		}
	}

	return { mx + 1, mxi };
}

int main() {
	int N;
	cin >> N;

	for (int i = 1, p, c; i < N; i++) {
		cin >> p >> c;
		p--; c--;
		vertices[p].children.push_back(c);
		vertices[c].parent = p;
	}

	for (int i = 0; i < N; i++) {
		if (vertices[i].parent == -1) {
			P = i;
			break;
		}
	}

	cout << f(P).second << "\n";

	return 0;
}
SubtaskSumTestVerdictTimeMemory
base1/50
1Accepted0/03ms3380 KiB
2Wrong answer0/087ms4916 KiB
3Accepted1/14ms3380 KiB
4Wrong answer0/33ms3384 KiB
5Wrong answer0/33ms3380 KiB
6Wrong answer0/13ms3584 KiB
7Wrong answer0/14ms3380 KiB
8Wrong answer0/14ms3380 KiB
9Wrong answer0/283ms4956 KiB
10Wrong answer0/392ms5132 KiB
11Wrong answer0/33ms3380 KiB
12Wrong answer0/493ms7732 KiB
13Wrong answer0/496ms7728 KiB
14Wrong answer0/310ms3636 KiB
15Wrong answer0/396ms7732 KiB
16Wrong answer0/390ms8244 KiB
17Wrong answer0/394ms7732 KiB
18Wrong answer0/472ms6196 KiB
19Wrong answer0/478ms7476 KiB
20Wrong answer0/497ms10428 KiB