Cod sursa(job #1511896)

Utilizator ovidiuz98Zamfir Ovidiu ovidiuz98 Data 27 octombrie 2015 12:05:29
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <vector>
#include <fstream>
#include <algorithm>
#define DIM 100005

using namespace std;

ifstream fin("zvon.in");
ofstream fout("zvon.out");

int N, T, s[DIM];
int a[DIM];
vector <int> v[DIM];

void dfs(int x){

    s[x]=0;
    int k =0;
    for(std::vector <int>::iterator it=v[x].begin();it!=v[x].end();it++){
        dfs(*it);
        //a[++k] = s[*it];
    }
    for(std::vector <int>::iterator it=v[x].begin();it!=v[x].end();it++){
     //   dfs(*it);
        a[++k] = s[*it];
    }
    sort(a + 1, a + k + 1);
    for(int i=k;i>=1;i--)
        s[x] = max(s[x], a[i] + (k-i+1));

}
int main(){
    fin >> T;

    while(T--){

        fin >> N;

        for(int i=1;i<=N;i++){
            v[i].clear();
            s[i]=0;
        }

        for(int i=1;i<N;i++){
            int x,y;
            fin >> x >> y;
            v[x].push_back(y);
        }

        dfs(1);

        fout << s[1] << "\n";
    }

    fin.close();fout.close();

    return 0;


}