Pagini recente » Cod sursa (job #140984) | Cod sursa (job #215315) | Cod sursa (job #694767) | Cod sursa (job #434780) | Cod sursa (job #2021622)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#define N 100010
using namespace std;
ifstream f("zvon.in");
ofstream g("zvon.out");
vector<int> vec[N];
int viz[N],deq[N],i,j,t,n,m,k,v[N],x,y,rez,par[N];
bool comp(int a,int b)
{
return deq[a]>deq[b];
}
int dfs(int nod,int nr)
{
int max1=0,el,cnt=0;
if(deq[nod]==0)
return 1;
for(int t=0;t<vec[nod].size();t++)
{
el=dfs(vec[nod][t],0);
nr++;
if(el>1)
{
if(max1<el)
{
max1=el;
cnt=0;
}
else
if(max1==el)
{
cnt++;
}
}
}
if(max1+cnt>nr)
{
if(nod!=1)
return max1+cnt+1;
else
return max1+cnt;
}
else
{
if(nod!=1)
return nr+1;
else
return nr;
}
}
int main()
{
f>>t;
while(t!=0)
{
f>>n;
rez=0;
if(n==1)
g<<0<<' ';
else
{
for(i=1;i<=n;i++)
vec[i].clear();
for(i=1;i<n;i++)
{
f>>x>>y;
vec[x].push_back(y);
deq[x]++;
}
for(i=1;i<=n;i++)
if(vec[i].size()!=0)
sort(vec[i].begin(),vec[i].end(),comp);
g<<dfs(1,0);
}
t--;
g<<"\n";
}
}