Pagini recente » Cod sursa (job #1251887) | Cod sursa (job #2470172) | Cod sursa (job #2241079) | Cod sursa (job #2868367) | Cod sursa (job #2671712)
#include <fstream>
#include <vector>
#include <queue>
#include <cstring>
using namespace std;
ifstream in("darb.in");
ofstream out("darb.out");
vector<int> nod[1000001];
queue<int> c;
int n,v[1000001],viz[1000001],y,sol;
void bfs(int x){
memset(v,0,1000001);
memset(viz,0,1000001);
c.push(x);
v[x]=1;
viz[x]=1;
int i,aux;
while( !c.empty() ){
aux = c.front();
for( i=0; i<nod[aux].size() ; i++){
if( viz[ nod[aux][i] ] == 0){
c.push( nod[aux][i] );
v[ nod[aux][i] ] = v[aux] + 1;
viz[ nod[aux][i] ] = 1;
sol = v[ nod[aux][i] ];
y = nod[aux][i];
}
}
c.pop();
}
}
void read()
{
in>>n;
for(int i=0,a,b; i<n-1; i++){
in>>a>>b;
nod[a].push_back(b);
nod[b].push_back(a);
}
}
int main()
{
read();
bfs(1);
bfs(y);
out<<sol;
out.close();
out.close();
return 0;
}