Pagini recente » Cod sursa (job #850659) | Cod sursa (job #629178) | Cod sursa (job #2370896) | Cod sursa (job #1914823) | Cod sursa (job #2391610)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
vector<int>a[100001];
bool v[100001];
int n,x,y;
int bfs()
{
int b=0,e=1,l[100001];
l[0]=1;v[1]=1;
while(b<e)
{
int c=l[b],m=a[l[b]].size();
for(int i=0;i<m;++i)if(!v[a[c][i]]){v[a[c][i]]=1;l[e]=a[c][i];++e;};
++b;
}
return l[b-1];
}
int dfs(int x,int d)
{
int dm=d,m=a[x].size();v[x]=1;
for(int i=0;i<m;++i)if(!v[a[x][i]]){dm=max(dm,dfs(a[x][i],d+1));}
return dm;
}
int main()
{
f>>n;
for(int i=1;i<n;++i){f>>x>>y;a[x].push_back(y);a[y].push_back(x);}
x=bfs();
for(int i=1;i<=n;++i)v[i]=0;
g<<dfs(x,1);
}