Cod sursa(job #1374347)

Utilizator StefanMudragMudrag Stefan StefanMudrag Data 5 martie 2015 08:21:37
Problema Zvon Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include<iostream>
#include<fstream>
#define NMAX 100001
#include<vector>
#include<algorithm>
using namespace std;
ifstream fin("zvon.in");
ofstream fout("zvon.out");
int n,t,v[NMAX],mx;

int cmp(const int &x,const int &y)
{
    return v[x]>v[y];
}
void dfs1(vector<int>*g ,int x)
{
    for(int i=0;i<g[x].size();++i)
    {
        v[x]++;
       // cout<<g[x][i]<<" ";
        dfs1(g,g[x][i]);
        v[x]+=v[g[x][i]];
    }
}
void dfs(vector<int>*g,int x,int timp)
{
    for(int i=0;i<g[x].size();++i)
    {
        timp++;
        if(mx<timp)mx=timp;
        dfs(g,g[x][i],timp);
    }
}
void solve()
{
    vector<int>g[n+1];
    int x,y;
    for(int i=1;i<n;i++)
    {
        fin>>x>>y;
        g[x].push_back(y);
    }
    dfs1(g,1);
    sort(g[1].begin(),g[1].end(),cmp);
    mx=0;
    dfs(g,1,0);
    fout<<mx<<'\n';
}

int main()
{
    fin>>t;
    for(int i=1;i<=t;i++)
    {
        fin>>n;
        if(n==1)fout<<0<<'\n';
        else
            solve();
    }
  fin.close();
  fout.close();
  return 0;

}