Pagini recente » Cod sursa (job #693147) | Cod sursa (job #2071362) | Cod sursa (job #1002431) | Cod sursa (job #424971) | Cod sursa (job #1457040)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
const int DIM = 100010;
ifstream in("darb.in");
ofstream out("darb.out");
vector <int> Adj[DIM];
queue <int> Q;
int i,j,n,m,Freq[DIM],curSiz,curAsc,curPoz,ans,x,y;
void _DFS(int nod, int dist)
{
int curSiz,curAsc,i;
if(dist > ans)
ans = dist;
curSiz = Adj[ nod ].size();
for(i=0 ; i<curSiz ; ++i)
{
curAsc = Adj[ nod ][ i ];
if( Freq[ curAsc ] == 1 )
{
Freq[ curAsc ] = 2;
_DFS( curAsc , dist + 1 );
}
}
}
int main()
{
in>>n;
for(i=1 ; i<n ; ++i)
{
in>>x>>y;
Adj[ x ].push_back( y );
Adj[ y ].push_back( x );
}
Q.push(5);
Freq[ 1 ] = 1;
while( !Q.empty() )
{
curPoz = Q.front();
curSiz = Adj[ curPoz ].size();
for(i=0 ; i<curSiz ; ++i)
{
curAsc = Adj[ curPoz ][ i ];
if( Freq[ curAsc ] == 0 )
{
Freq[ curAsc ] = 1;
Q.push( curAsc );
}
}
Q.pop();
}
Freq[ curPoz ] = 2;
_DFS( curPoz , 1 );
out<<ans;
return 0;
}