Cod sursa(job #2487763)

Utilizator IoanaDraganescuIoana Draganescu IoanaDraganescu Data 5 noiembrie 2019 18:32:04
Problema Zvon Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <cstring>

using namespace std;

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

const int nmax = 100000;

vector <int> g[nmax +5];
int n, t, d[nmax + 5];

void Read(){
    fin >> n;
    for (int i = 1; i < n; i++){
        int a, b;
        fin >> a >> b;
        g[a].push_back(b);
    }
}

int Compare(int a, int b){
    return d[a] > d[b];
}

void DFS(int nod){
    for (auto i : g[nod])
        DFS(i);
    sort(g[nod].begin(), g[nod].end(), Compare);
    for (int i = 0; i < g[nod].size(); i++)
        d[nod] = max(d[nod], d[g[nod][i]] + i + 1);
}

void Print(){
    fout << d[1] << '\n';
}

void Set(){
    memset(d, 0, sizeof d);
    for (int i = 1; i <= n; i++)
        g[i].clear();
}

int main(){
    fin >> t;
    while (t--){
        Read();
        DFS(1);
        Print();
        Set();
    }
    return 0;
}