Pagini recente » Cod sursa (job #2666437) | Cod sursa (job #2662107) | Cod sursa (job #3128419) | Cod sursa (job #1669462) | Cod sursa (job #1451537)
#include<fstream>
#include<vector>
#include<queue>
#define maxn 100005
using namespace std;
ifstream fi("darb.in");
ofstream fo("darb.out");
vector <int> a[maxn];
queue <int> q;
int i,n,x,y,d[maxn];
int solutie;
int bfs(int plecare){
int i,lung_max,nod,lung;
for(i=1;i<=n;i++) d[i]=0;
lung_max=1;
d[plecare]=1;
q.push(plecare);
while(q.size())
{
nod=q.front();
if(d[nod]>lung_max) lung_max=d[nod];
lung=a[nod].size();
for(i=0;i<lung;i++)
if(!d[a[nod][i]]){
d[a[nod][i]]=d[nod]+1;
q.push(a[nod][i]);
}
q.pop();
}
return lung_max;
}
int main(){
fi>>n;
for(i=1;i<n;i++){
fi>>x>>y;
a[x].push_back(y);
a[y].push_back(x);
}
solutie=1;
for(i=1;i<=n;i++)
solutie=max(solutie,bfs(i));
fo<<solutie;
fi.close();
fo.close();
return 0;
}