Pagini recente » Cod sursa (job #1397534) | Cod sursa (job #184252) | Cod sursa (job #2888219) | Cod sursa (job #2880605) | Cod sursa (job #1095829)
#include <cstdio>
#include <vector>
#include <cstring>
#define Nmax 100666
using namespace std;
int N,Distance[ Nmax ],start;
vector<int> G[ Nmax ];
void read()
{
scanf("%d",&N);
int a,b;
for(int i = 1; i < N; ++i)
{
scanf("%d%d",&a,&b);
G[ a ].push_back(b);
G[ b ].push_back(a);
}
}
void DFS( const int nodc )
{
if(Distance[ nodc ] > Distance[ start ])
start = nodc;
for(vector<int>::iterator it = G[nodc].begin(); it != G[nodc].end();++it)
if(Distance[*it] == 0)
{
Distance[*it] = Distance[nodc] + 1;
DFS(*it);
}
}
void solve()
{
Distance[ 1 ] = 1;
DFS(1);
memset(Distance,0,sizeof(Distance));
Distance[ start ] = 1;
DFS(start);
printf("%d\n",Distance[ start ]);
}
int main()
{
freopen("darb.in","r",stdin);
freopen("darb.out","w",stdout);
read();
solve();
return 0;
}