Pagini recente » Cod sursa (job #1459778) | Cod sursa (job #2705488) | Cod sursa (job #2859139) | Cod sursa (job #2089697) | Cod sursa (job #1179389)
#include<iostream>
#include<stdio.h>
#include<vector>
#include<string.h>
using namespace std;
vector<int> v[1000001];
int n,viz[1000001],contor[100001],last,diametru;
void DF(int i)
{
static int pas=0;
viz[i]=1;
if(pas==0)
contor[i]=1;
for(int j=0;j<v[i].size();j++)
{
if(viz[v[i][j]]==0)
{
contor[v[i][j]]=contor[i]+1;
diametru=contor[v[i][j]];
last=v[i][j];
DF(v[i][j]);
}
else
{
memset(contor,0,100001);
memset(viz,0,100001);
}
}
}
int main()
{
FILE *f=fopen("darb.in","r"),*g=fopen("darb.out","w");
int n,a,b;
fscanf(f,"%d",&n);
for(int i=0;i<n-1;i++)
{
fscanf(f,"%d%d",&a,&b);
v[a].push_back(b);
v[b].push_back(a);
}
fclose(f);
DF(1);
DF(last);
fprintf(g,"%d",diametru);
fclose(g);
return 0;
}