Cod sursa(job #3166407)

Utilizator maiaauUngureanu Maia maiaau Data 8 noiembrie 2023 18:18:07
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <bits/stdc++.h>
using namespace std;
using pii = pair<int,int>;
#define fi first
#define se second
#define pb push_back

ifstream f("darb.in");
ofstream g("darb.out");

int n, last, d;
vector<vector<int>> e;
bitset<100003> u;
void read(), bfs(int);

int main()
{
	read();
	bfs(1);
	u.reset();
	bfs(last);
	g << d;

	return 0;
}

void read(){
	f >> n; e.resize(n+3);
	for (int i = 1; i < n; i++){
		int a, b; f >> a >> b;
		e[a].pb(b); e[b].pb(a);
	}
}
void bfs(int nod){
	queue<pii> q;
	q.push({nod, 1});
	while (!q.empty()){
		int curr;
		tie(curr, d) = q.front(); q.pop();
		u[curr] = 1; last = curr;
		for (auto v: e[curr])
			if (!u[v]) q.push({v, d + 1});
	}
}