Pagini recente » Cod sursa (job #2392879) | Cod sursa (job #2935468) | Cod sursa (job #1369573) | Cod sursa (job #2309404) | Cod sursa (job #2092318)
#include <fstream>
#include <vector>
#include <bitset>
using namespace std;
ifstream F("darb.in");
ofstream G("darb.out");
int x, y, n, m;
long long maxx, d[100005];
vector<int> a[100005];
bitset<100005> v;
void dfs(int x, long long niv)
{
v[x] = 1;
d[x] = niv;
vector<int> :: iterator it;
for(it = a[x].begin(); it != a[x].end(); ++ it)
if( !v[*it] ) dfs(*it, niv+1);
}
int main()
{
F >> n;
for( int i = 1; i < n; ++ i )
F >> x >> y, a[x].push_back(y), a[y].push_back(x);
dfs(1, 0);
for( int i = 2; i <= n; ++ i )
{
if( d[i] > maxx ) maxx = d[i], m = i;
d[i] = 0;
}
v = 0;
dfs(m, 1);
maxx = -1;
for( int i = 2; i <= n; ++ i )
if( d[i] > maxx ) maxx = d[i];
G << maxx;
return 0;
}