Cod sursa(job #1341496)

Utilizator radu_cebotariRadu Cebotari radu_cebotari Data 12 februarie 2015 19:49:39
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include<fstream>
#include<algorithm>
#include<vector>
#include<iostream>
using namespace std;
ifstream in("zvon.in");
ofstream out("zvon.out");
const int NMAX = 100000;

vector<int> v[NMAX + 5];
int sol[NMAX + 5],n;

void init()
{

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

bool cmp(int a,int b)
{

    return sol[a] > sol[b];
}

void dfs(int nod)
{

    for(int i = 0 ; i < v[nod].size() ; i++)
        dfs(v[nod][i]);
    int maxim = 0;
    sort(v[nod].begin(),v[nod].end(),cmp);
    for(int i = 0 ; i < v[nod].size() ; i++){
        maxim = max(maxim,sol[v[nod][i]] + i + 1);
    }
    sol[nod] = maxim;
}

void read()
{

    int a,b;
    for(int i = 1 ; i < n ; i++){
        in>>a>>b;
        v[a].push_back(b);
    }

}

int main()
{

    int T;
    in>>T;
    for(; T ; --T){
        in>>n;
        init();
        read();
        dfs(1);
        out<<sol[1]<<"\n";
    }
    out.close();
    in.close();
    return 0;
}