Pagini recente » Cod sursa (job #2776994) | Cod sursa (job #2875911) | Cod sursa (job #1017654) | Cod sursa (job #3234042) | Cod sursa (job #2159625)
#include <cstdio>
#include <vector>
#define N 100002
using namespace std;
int n, Q[N];
vector<int>A[N];
int prebfs()
{
bool ok[N]={0};
int coada[N], st=1, sfc=1;
coada[st]=1;
ok[1]=1;
while(st<=sfc)
{
for(auto w:A[coada[st]])
{
if(!ok[w])
{
coada[++sfc]=w;
ok[w]=1;
}
}
st++;
}
return coada[sfc];
}
int bfs()
{
int d[N]={0}, st=1, sfc=1;
d[Q[1]]=1;
while(st<=sfc)
{
for(auto w:A[Q[st]])
{
if(!d[w])
{
d[w]=d[Q[st]]+1;
Q[++sfc]=w;
}
}
st++;
}
return d[Q[sfc]];
}
int main()
{
freopen("darb.in", "r", stdin);
freopen("darb.out", "w", stdout);
scanf("%d", &n);
for(int i=1; i<n; i++)
{
int n1, n2;
scanf("%d %d", &n1, &n2);
A[n1].push_back(n2);
A[n2].push_back(n1);
}
Q[1]=prebfs();
printf("%d\n", bfs());
return 0;
}