Pagini recente » Cod sursa (job #331528) | Cod sursa (job #1936159) | Cod sursa (job #2489953) | Cod sursa (job #2280889) | Cod sursa (job #2530879)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
vector <int> v[100005];
int viz[100005];
int clean(int n){
int nmax=0,maxx=0;
for(int i=1;i<=n;i++){
if(viz[i]>maxx){
nmax=i;
maxx=viz[i];
}
viz[i]=0;
}
return nmax;
}
int maxi(int n){
int maxx=0;
for(int i=1;i<=n;i++){
maxx=max(maxx,viz[i]);
}
return maxx;
}
void dfs(int nod){
for(int i=0;i<v[nod].size();i++){
if(!viz[v[nod][i]]){
viz[v[nod][i]]=viz[nod]+1;
dfs(v[nod][i]);
}
}
}
int n;
int a,b,i;
int main()
{
ios_base::sync_with_stdio(false);
fin>>n;
for(i=1;i<=n;i++){
fin>>a>>b;
v[a].push_back(b);
v[b].push_back(a);
}
viz[1]=1;
dfs(1);
int nod=clean(n);
viz[nod]=1;
dfs(nod);
fout<<maxi(n)<<'\n';
return 0;
}