Pagini recente » Cod sursa (job #2176447) | Cod sursa (job #222670) | Cod sursa (job #1472851) | Cod sursa (job #1295346) | Cod sursa (job #1093857)
#include <cstdio>
#include <vector>
#include <cstring>
using namespace std;
#define MAX_N 100000
vector< int > v[MAX_N];
bool marked[MAX_N];
int ans;
void read( FILE *fin, int &n ) {
fscanf( fin, "%d", &n );
for ( int i = 1; i < n; ++i ) {
int x, y;
fscanf( fin, "%d%d", &x, &y );
--x, --y;
v[x].push_back( y );
v[y].push_back( x );
}
}
void dfs( int node, int dist ) {
if ( dist > ans )
ans = dist;
marked[node] = true;
for ( vector< int >::iterator it = v[node].begin(); it != v[node].end(); ++it )
if ( !marked[*it] )
dfs( *it, dist + 1 );
marked[node] = false;
}
int main() {
FILE *fin, *fout;
fin = fopen( "darb.in", "r" );
int n;
read( fin, n );
fclose( fin );
for ( int i = 0; i < n; ++i )
dfs( i, 0 );
/*dfs( 0, 0 );
memset( marked, false, sizeof( marked ) );
ans = 0;
dfs( leaf, 0 );*/
fout = fopen( "darb.out", "w" );
fprintf( fout, "%d\n", ans + 1 );
fclose( fout );
}