Pagini recente » Cod sursa (job #2047778) | Cod sursa (job #367637) | Cod sursa (job #737847) | Cod sursa (job #1291206) | Cod sursa (job #1713626)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
const int MAXN=100005;
int n, x, y, start, maxy;
int dim[MAXN], viz[MAXN];
vector < int > graf[MAXN];
queue < int > coada;
void bfs()
{
while(!coada.empty())
{
int nod = coada.front();
coada.pop();
viz[nod] = 1;
for(auto it: graf[nod])
if(!viz[it])
{
viz[it] = 1;
dim[it] = dim[nod] +1;
coada.push(it);
}
}
}
int main()
{
fin >> n;
while(fin>> x >> y)
{
graf[x].push_back(y);
graf[y].push_back(x);
}
coada.push(1);
bfs();
for(int i=1; i<=n; i++)
maxy=max(maxy,dim[i]);
for(int i=1; i<=n; i++)
if(dim[i] == maxy)
{
start = i;
break;
}
fill(viz+1, viz+n+1, 0);
fill(dim+1, dim+n+1, 0);
coada.push(start);
bfs();
for(int i=1; i<=n; i++)
maxy=max(maxy,dim[i]);
for(int i=1; i<=n; i++)
{
if(dim[i] == maxy)
{
fout<<dim[i]+1;
break;
}
}
}