Pagini recente » Cod sursa (job #1185749) | Cod sursa (job #1104619) | Cod sursa (job #24512) | Cod sursa (job #1058360) | Cod sursa (job #1101745)
#include <fstream>
#include <vector>
#include <cstring>
#include <queue>
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
vector<int>g[100001];
int d[100001], n, x, y, dmax, node;
queue<int>q;
void Bfs(int x)
{
d[x]=1;
q.push(x);
while(!q.empty())
{
x=q.front();q.pop();
node=x;
for(vector<int>::iterator it=g[x].begin();it<g[x].end(); it++)
{
if(!d[*it])
{
q.push(*it);
d[*it]=d[x]+1;
dmax=max(dmax,d[*it]);
}
}
}
}
int main()
{
fin>>n;
for(int i = 1; i< n; i++ )
{
fin>>x>>y;
g[x].push_back(y);
g[y].push_back(x);
}
Bfs(1);
memset(d,0,sizeof(d));
Bfs(node);
fout<<dmax;
fin.close();
fout.close();
return 0;
}