Pagini recente » Cod sursa (job #443601) | Cod sursa (job #510802) | Cod sursa (job #3220413) | Cod sursa (job #2530842) | Cod sursa (job #1896267)
#include <bits/stdc++.h>
#define mp make_pair
#define pb push_back
#define st first
#define nd second
using namespace std;
ifstream in("darb.in");
ofstream out("darb.out");
int t, rs, ans, n, m, x, y; bool viz[100100];
vector <int> v[100100];
queue <pair <int, int> > q;
void bfs(int nod){
memset(viz, 0, sizeof(viz));
int ans = 0;
viz[nod] = 1;
rs = 0; pair <int, int> x;
q.push(mp(nod, ans));
while(!q.empty()){
x = q.front();
q.pop();
for(auto it : v[x.st])
if(!viz[it]){
viz[it] = 1;
q.push(mp(it, x.nd+1));
}
}
memset(viz, 0, sizeof(viz));
ans = 0;
nod = x.st;
viz[nod] = 1;
q.push(mp(nod, ans));
while(!q.empty()){
x = q.front();
q.pop();
for(auto it : v[x.st])
if(!viz[it]){
viz[it] = 1;
q.push(mp(it, x.nd+1));
}
}
rs = x.nd;
}
int main(){
in >> n;
for(int i = 1; i < n; i++){
in >> x >> y;
v[x].pb(y);
v[y].pb(x);
}
bfs(1);
out << rs+1;
return 0;
}