Pagini recente » Cod sursa (job #285118) | Cod sursa (job #639333) | Cod sursa (job #291999) | Cod sursa (job #3149633) | Cod sursa (job #2113638)
#include <bits/stdc++.h>
using namespace std;
ifstream in("darb.in");
ofstream out("darb.out");
vector < int > v[100005];
bool viz[100005];
int n, maxim = -1 << 30,start, cost[100005];
void read()
{
in >> n;
int a,b;
for(int i=1; i<n; i++)
{
in >> a >> b;
v[a].push_back(b);
v[b].push_back(a);
}
}
void dfs(int nod)
{
viz[nod] = 1;
for(int i=0; i<v[nod].size(); i++)
if( !viz[v[nod][i]] )
{
cost[v [nod][i] ] = cost[nod] +1;
if( cost[ v[nod][i]] > maxim )
{
maxim = cost[ v[nod][i] ];
start = v[nod][i];
}
dfs( v[nod][i] );
}
}
int main()
{
read();
dfs(1);
memset( viz, 0, sizeof viz);
memset( cost, 0, sizeof cost);
dfs(start);
out << maxim+1;
return 0;
}