Cod sursa(job #1937235)

Utilizator nicu_serteSerte Nicu nicu_serte Data 23 martie 2017 20:19:43
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("zvon.in");
ofstream fout("zvon.out");
vector <int> g[100001];
int n, d[100001];
void reset()
{
    for(int i=1; i<=n; i++)
    {
        d[i]=0;
        g[i].clear();
    }
}
void citire()
{
    int i, x, y;
    fin>>n;
    reset();
    for(i=1; i<n; i++)
    {
        fin>>x>>y;
        g[x].push_back(y);
    }
}
bool cmpf(int x, int y)
{
    return d[x]>d[y];
}
void dfs(int nod)
{
    vector <int>::iterator it;
    int i;
    for(it=g[nod].begin(); it!=g[nod].end(); it++)
        dfs(*it);
    sort(g[nod].begin(), g[nod].end(), cmpf);
    d[nod]=0;
    for(i=1, it=g[nod].begin(); it!=g[nod].end(); it++, i++)
        d[nod]=max(d[nod], i+d[*it]);
}
int main()
{
    int t;
    fin>>t;
    while(t)
    {
        t--;
        citire();
        dfs(1);
        fout<<d[1]<<'\n';
    }
    fin.close();
    fout.close();
    return 0;
}