Pagini recente » Cod sursa (job #2416230) | Cod sursa (job #577605) | Cod sursa (job #1334373) | Cod sursa (job #466358) | Cod sursa (job #2309415)
#include <bits/stdc++.h>
#define N 100004
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
int pr , n , d[N] , c[N] , viz[N];
vector <int> L[N];
queue <int> q;
void Citire()
{
int x , y;
fin >> n;
while(fin >> x >> y)
{
L[x].push_back(y);
L[y].push_back(x);
}
fin.close();
}
void Bfs(int nod)
{
int i;
d[nod] = 1;
viz[nod] = 1;
q.push(nod);
while(!q.empty())
{
i = q.front();
q.pop();
for(auto j : L[i])
if(viz[j] == 0)
{
d[j] = d[i] + 1;
viz[j] = 1;
q.push(j);
}
}
}
int main()
{
int i , mx;
Citire();
Bfs(1);
pr = 1;
for(i = 2; i <= n; i++)
if(d[i] > d[pr])
pr = i;
memset(viz , 0 , N);///pune 0 peste tot in viz de la 1 la N
memset(d , 0 , N);
Bfs(pr);
mx = -1;
for(i = 1; i <= n; i++)
if(d[i] > mx)mx = d[i];
fout << mx << "\n";
return 0;
}