Cod sursa(job #2760459)

Utilizator gabrielinelusGabriel-Robert Inelus gabrielinelus Data 26 iunie 2021 15:52:04
Problema Diametrul unui arbore Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <cstdio>
#include <vector>
#include <queue>
using namespace std;

vector<vector<int>> Graph;
int p, maxp;

void DFS(int k, int dad, int dist) {
	
	if (dist > maxp) {
		maxp = dist;
		p = k;
	}
	
	for (auto v: Graph[k])
		if (v != dad)
			DFS(v, k, dist + 1);
}

int main() {
	freoepn("darb.in", "r", stdin);
	freopen("darb.out", "w", stdout);
	
	int N;
	scanf("%d", &N);
	Graph.resize(N);
	int a, b;
	for (int i = 0; i < N - 1; ++i) {
		scanf("%d%d", &a, &b);
		--a; --b;
		Graph[a].emplace_back(b);
		Graph[b].emplace_back(a);
	}
	DFS(0, -1, 1);
	DFS(p, -1, 1);

    printf("%d\n", maxp);
    
	return 0;
}