Pagini recente » Cod sursa (job #276304) | Cod sursa (job #3031299) | Cod sursa (job #520297) | Cod sursa (job #2475887) | Cod sursa (job #3284392)
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
bitset<100001> vas;
int n,x,y,mx,dx;
vector<vector<int>> graf;
void dfs(int nod,int niv){
vas[nod]=1;
if(niv>mx){mx=niv; x=nod;}
for(int i:graf[nod]){
if(!vas[i]){
dfs(i,niv+1);
}
}
}
void dfs2(int nod,int niv){
vas[nod]=0;
if(niv>dx){dx=niv;}
for(int i:graf[nod]){
if(vas[i]){
dfs2(i,niv+1);
}
}
}
int main()
{
fin>>n;
graf.assign(n+1,vector<int>());
for(int i=1;i<=n;i++){
fin>>x>>y;
graf[x].push_back(y);
graf[y].push_back(x);
}
dfs(1,1);
dfs2(x,1);
fout<<dx;
}