Cod sursa(job #1711237)

Utilizator M.AndreiMuntea Andrei Marius M.Andrei Data 30 mai 2016 20:46:14
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <vector>
#include <string.h>
using namespace std;

ifstream f{ "darb.in" };
ofstream q{ "darb.out" };

vector<int> arb[100001];
int visited[100001];
int maxs = 0, nod;

void DFS(int node, int adancime) {

	if (adancime > maxs) {
		maxs = adancime;
		nod = node;
	}
	visited[node] = 1;
	for (int i = 0; i < (int)arb[node].size(); i++) {
		if (visited[arb[node][i]] == 0) {
			DFS(arb[node][i], adancime + 1);
		}
	}
	visited[node] = 0;
}

int main() {
	int n, x, y;
	memset(visited, 0, 100001 * sizeof(int));

	f >> n;

	for (int i = 1; i <= n; i++) {
		f >> x >> y;
		arb[y].push_back(x);
		arb[x].push_back(y);
	}
	DFS(1, 1);
	DFS(nod, 1);
	q << maxs;

	f.close();
	q.close();
	return 0;
}