Cod sursa(job #1511629)

Utilizator CostanMiriamCostan Miriam CostanMiriam Data 26 octombrie 2015 22:58:54
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<fstream>
#include<queue>
#include<vector>

using namespace std;

#define DIM 100010

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

int n;

int dp[DIM];

vector<int> L[DIM];

void DFS(int node) {

    priority_queue<int> H;

    dp[node] = 0;

    for(int i = 0; i < L[node].size(); i++) {

        int child = L[node][i];

        DFS(child);

        H.push(dp[child]);

    }

    for(int i = 1; H.size(); H.pop(), i++) {

        dp[node] = max(dp[node], H.top() + i);

    }

}

int main() {

    int testsCount;

    fin >> testsCount;

    while(testsCount--) {

        fin >> n;

        for(int i = 1; i <= n; i++)
            L[i].clear();

        for (int i = 1; i < n; i++) {

            int x, y;

            fin >> x >> y;

            L[x].push_back(y);

        }

        DFS(1);

        fout << dp[1] << "\n";

    }

    return 0;

}

//Miriam e tare!