Pagini recente » Cod sursa (job #1525929) | Cod sursa (job #2072363) | Cod sursa (job #1984799) | Cod sursa (job #1882889) | Cod sursa (job #2487808)
#include <bits/stdc++.h>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
const int N = 100010;
const int oo = 1000000000;
int n,d[N];
vector<int> v[N];
void bfs(int);
int main()
{
f>>n;
for(int i=1; i<=n; i++)
{
int x,y;
f>>x>>y;
v[x].push_back(y);
v[y].push_back(x);
}
bfs(1);
int x=1;
for(int i=1; i<=n; i++)
if(d[i]>d[x])
x=i;
bfs(x);
x=0;
for(int i=1; i<=n; i++)
if(d[i]>x)
x=d[i];
g<<x+1;
return 0;
}
void bfs(int nod)
{
fill(d+1,d+n+1,oo);
d[nod]=0;
vector<int> viz(n+1,0);
viz[nod]=1;
queue<int>q;
q.push(nod);
for(; q.size();q.pop())
{
nod=q.front();
for(auto vec:v[nod])
if(!viz[vec])
{
d[vec]=d[nod]+1;
viz[vec]=1;
q.push(vec);
}
}
}