Pagini recente » Cod sursa (job #2733104) | Cod sursa (job #1237191) | Cod sursa (job #1845066) | Cod sursa (job #2726541) | Cod sursa (job #334001)
Cod sursa(job #334001)
#include<stdio.h>
#include<algorithm>
#include<vector>
using namespace std;
vector <int> v[100000];
int zvon[100000];
void dfs(int rad)
{
int i,nr=0;
zvon[rad]=0;
for(i=0;i<(int) v[rad].size();i++)
{
dfs(v[rad][i]);
if(1+zvon[v[rad][i]]>zvon[rad])
{
zvon[rad]=1+zvon[v[rad][i]];
nr=0;
}
else
if(1+zvon[v[rad][i]]==zvon[rad])
nr=1;
}
if(v[rad].size()>0 && nr==1)
zvon[rad]++;
}
int main()
{
int t,n,i,a,b,j;
FILE *f=fopen("zvon.in","r");
FILE *g=fopen("zvon.out","w");
fscanf(f,"%i",&t);
printf("%i\n",t);
for(i=0;i<t;i++)
{
fscanf(f,"%i\n",&n);
for(j=0;j<n;j++)
v[j].clear();
for(j=0;j<n-1;j++)
{
fscanf(f,"%i %i\n",&a,&b);
v[a-1].push_back(b-1);
}
dfs(0);
fprintf(g,"%i\n",zvon[0]);
}
fclose(f);
fclose(g);
return 0;
}