Pagini recente » Cod sursa (job #1340869) | Cod sursa (job #2183033) | Cod sursa (job #1524130) | Cod sursa (job #2330223) | Cod sursa (job #2023059)
#include<stdio.h>
#include<vector>
#include<string.h>
#define MAXN 100001
void dfs(int nod,int dist);
std::vector<int> vecini[MAXN];
bool vizitat[MAXN];
FILE*fin,*fout;
int maxdist=-1;
int cap1=1;
int main()
{
fin=fopen("darb.in","r");
fout=fopen("darb.out","w");
int N;
fscanf(fin,"%d",&N);
for(int i=1;i<=N;i++)
{
int a,b;
fscanf(fin,"%d%d",&a,&b);
vecini[a].push_back(b);
vecini[b].push_back(a);
}
dfs(1,0);
memset(vizitat,0,sizeof(vizitat));
dfs(cap1,1);
fprintf(fout,"%d",maxdist);
fclose(fin);
fclose(fout);
return 0;
}
void dfs(int nod,int dist)
{
vizitat[nod]=1;
for(int i=0;i<vecini[nod].size();i++)
{
if(!vizitat[vecini[nod][i]])
{
dfs(vecini[nod][i],dist+1);
}
}
if(dist>maxdist)
{
maxdist=dist;
cap1=nod;
}
}