Pagini recente » Cod sursa (job #2222477) | Cod sursa (job #3152751) | Cod sursa (job #3185524) | Cod sursa (job #526418) | Cod sursa (job #1093859)
#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 );
fout = fopen( "darb.out", "w" );
fprintf( fout, "%d\n", ans + 1 );
fclose( fout );
}