Pagini recente » Cod sursa (job #2374771) | Cod sursa (job #2221592) | Cod sursa (job #734220) | Cod sursa (job #3258831) | Cod sursa (job #1883326)
#include <bits/stdc++.h>
#define NMax 100000
#define oo 1<<30
using namespace std;
vector<int> a[NMax+1];
int COADA[NMax+1];
int d[NMax+1];
int N;
int BFS(int x0, int& xf)
{
int i,x,y,inc,sf;
for(i = 1; i <= N; ++i) d[i] = oo;
d[x0] = inc = sf = 0;
COADA[0] = x0;
while(inc <= sf)
{
x = COADA[inc++];
for(i = 0; i < a[x].size(); ++i)
{
y = a[x][i];
if(d[y] == oo){
d[y] = d[x] + 1;
COADA[++sf] = y;
}
}
}
xf = COADA[sf];
return d[xf];
}
int main(){
FILE* fin = fopen("darb.in","r");
FILE* fout = fopen("darb.out","w");
int i,x,y,xf;
fscanf(fin,"%d",&N);
for(i = 1; i < N; ++i)
{
fscanf(fin,"%d %d",&x,&y);
a[x].push_back(y);
a[y].push_back(x);
}
BFS(1,xf);
fprintf(fout,"%d\n",BFS(xf,x)+1);
return 0;
}