Pagini recente » Cod sursa (job #2291354) | Cod sursa (job #1228733) | Cod sursa (job #1589299) | Cod sursa (job #1290256) | Cod sursa (job #3351543)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
const long long max_size=1e5+1;
long long m,i,j,n,x,y,o;
vector <long long> graf[max_size];
bool vizitat[max_size];
long long dist[max_size];
void dfs(int nod,int par) {
if (vizitat[nod]) return;
vizitat[nod] = true;
dist[nod] = dist[par] + 1 ;
for (auto i:graf[nod])dfs(i,nod);
}
int main()
{
n = max_size;
fin >> m ;
for (i=1;i<=m;i++)
{
fin >> x >> y ;
graf[x].push_back(y);
graf[y].push_back(x);
dist[x] = 0 ;
dist[y] = 0 ;
}
dfs(1,0);
int k=0;
for (i=1;i<=max_size;i++){
if (dist[i] > dist[k])k=i;
}
for (i=0;i<=max_size;i++){
vizitat[i] = false;
dist[i] = 0 ;
}
dfs(k,0);
k=0;
for (i=1;i<=max_size;i++){
if (dist[i] > dist[k])k=i;
}
fout << dist[k] << "\n";
return 0;
}