Pagini recente » Cod sursa (job #3280669) | Cod sursa (job #81061) | Cod sursa (job #3265674) | Cod sursa (job #1779398) | Cod sursa (job #1630527)
#include <fstream>
#include <cstring>
#include <vector>
using namespace std;
int n,dmax;
vector < vector <int> > G;
vector <int> d;
void read();
void DFS(int,int);
void solve();
void write();
int main(){
read();
solve();
write();
return 0;
}
void read(){
freopen("darb.in","r",stdin);
scanf("%d",&n);
G.assign(n+1,vector <int> ());
d.assign(n+1,0);
for (int i=1;i<n;i++){
int x,y;
scanf("%d%d",&x,&y);
G[x].push_back(y);
G[y].push_back(x);
}
}
void solve(){
DFS(1,1);
d.assign(n+1,0);
DFS(dmax,1);
}
void write(){
int dmax=0;
for (int i=1;i<=n;i++){
dmax=max(dmax,d[i]);
}
freopen("darb.out","w",stdout);
printf("%d",dmax+1);
}
void DFS(int x,int dist){
d[x]=dist;
dmax=max(dmax,d[x]);
for (int i=0;i<G[x].size();i++){
int y=G[x][i];
if (!d[y]){
DFS(y,dist+1);
}
}
}