Pagini recente » Cod sursa (job #2887406) | Cod sursa (job #2721071) | Cod sursa (job #1415438) | Autentificare | Cod sursa (job #1228599)
#include <iostream>
#include <vector>
using namespace std;
vector<int> L[100001];
int node,l,lmax,visited[100001];
void add(int i, int j){
L[i].push_back(j);
L[j].push_back(i);
}
void dfs(int i){
visited[i] = 1;
l++;
if(l > lmax)
lmax = l,
node = i;
for(unsigned int k = 0; k < L[i].size(); k++){
if(visited[L[i][k]] != 1){
dfs(L[i][k]);
}
}
l--;
}
void reset(int n){
for(int i = 1; i <= n; i++)
visited[i] = 0;
l = 0; lmax = 0;
}
int main(){
freopen("darb.in","r",stdin);
freopen("darb.out","w",stdout);
int n;
scanf("%d",&n);
for(int i = 0; i < n; i++)
{
int a,b;
scanf("%d%d",&a,&b);
add(a,b);
}
dfs(1);
reset(n);
dfs(node);
printf("%d\n",lmax);
return 0;
}