Pagini recente » Cod sursa (job #2431212) | Cod sursa (job #1450632) | Cod sursa (job #1303737) | Cod sursa (job #2323162) | Cod sursa (job #1164236)
#include<cstdio>
#include<vector>
using namespace std;
vector<int>L[100100];
int n,m,i,j,a,b,c[2][100100],v[100100],x[100100],p,u,d[100100],poz,nmax;
FILE *f,*g;
void dfs(int nod){
x[nod]=1;
for(i=0;i<L[nod].size();i++){
if(x[L[nod][i]]==0){
d[L[nod][i]]=d[nod]+1;
if(d[L[nod][i]]>nmax)
nmax=d[L[nod][i]];
dfs(L[nod][i]);
}
}
}
int main(){
f=fopen("darb.in","r");
g=fopen("darb.out","w");
fscanf(f,"%d",&n);
for(i=1;i<n;i++){
fscanf(f,"%d%d",&a,&b);
L[a].push_back(b);
L[b].push_back(a);
}
c[0][1]=1;
u=p=1;
while(p<=u){
a=c[0][p];
for(i=0;i<L[a].size();i++){
if(v[L[a][i]]==0){
v[L[a][i]]=1;
c[0][++u]=L[a][i];
c[1][u]=c[1][u]+1;
poz=c[0][u];
}
}
p++;
}
nmax=0;
d[poz]=1;
dfs(poz);
fprintf(g,"%d",nmax);
fclose(f);
fclose(g);
return 0;
}