Cod sursa(job #2611741)

Utilizator CyborgSquirrelJardan Andrei CyborgSquirrel Data 7 mai 2020 15:55:02
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

const int N = 100041;

ifstream fin("darb.in");
ofstream fout("darb.out");

int n;
vector<int> gra[N];
void read(){
	fin >> n;
	for(int i = 0; i < n; ++i){
		int a, b;
		fin >> a >> b;
		gra[a].push_back(b);
		gra[b].push_back(a);
	}
}

int ans=0;
int vi[N], di[N];
int parkour(int k, int a=1, int d=0){
	int r = a;
	vi[a] = k;
	di[a] = d;
	for(auto b : gra[a]){
		if(vi[b] != k){
			int v = parkour(k, b, d+1);
			if(di[v] > di[r]){
				r = v;
			}
		}
	}
	return r;
}

int main(){
	// ios_base::sync_with_stdio(false);
	read();
	fout << di[parkour(2, parkour(1))]+1;
	return 0;
}