Cod sursa(job #848850)

Utilizator stoicatheoFlirk Navok stoicatheo Data 5 ianuarie 2013 20:04:28
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include<fstream>
#include<vector>
#include<algorithm>
#include<cmath>
using namespace std;
int T,n,timp[100100];
vector <int> G[100100];
 
inline bool Descrescator(int a,int b)
{
    return a>b;
}
 
inline void DFS(int x)
{
    vector <int>::iterator it;
    vector <int> fii;
     
    for(it=G[x].begin();it!=G[x].end();it++)
        DFS(*it);
     
    for(it=G[x].begin();it!=G[x].end();it++)
        fii.push_back(timp[*it]);
     
    sort(fii.begin(),fii.end(),Descrescator);
     
    int k=1;
    for(it=fii.begin();it!=fii.end();it++)
    {
        timp[x]=max(timp[x],k+*it);
        k++;
    }
}
 
int main()
{
    int t,i,x,y;
    ifstream fin("zvon.in");
    ofstream fout("zvon.out");
    fin>>T;
    for(t=0;t<T;t++)
    {
        fin>>n;
        for(i=1;i<n;i++)
        {
            fin>>x>>y;
            G[x].push_back(y);
        }
        DFS(1);
        fout<<timp[1]<<"\n";
        for(i=1;i<=n;i++)
        {
            timp[i]=0;
            G[i].clear();
        }
    }
    return 0;
}