Cod sursa(job #1902731)

Utilizator marcdariaDaria Marc marcdaria Data 4 martie 2017 19:18:22
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>

using namespace std;

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

int t[100001], n;
vector <int> v[100001];

bool cmp(int x, int y);
int DFS(int elem);

int main()
{
    int test;
    fin >> test;
    while(test)
    {
        fin >> n;
        int i , j , a , b;
        for(i = 1 ; i < n ; i++)
        {
            fin >> a >> b;
            v[a].push_back(b);
        }
        DFS(1);
        fout << t[1] << '\n';
        for(i = 1 ; i <= n ; i++)
        {
            v[i].clear();
            t[i] = 0;
        }
        test--;
    }
}

bool cmp(int x, int y)
{
    return t[x] > t[y];
}

int DFS(int elem)
{
    int i;
    for(i = 0 ; i < v[elem].size(); i++)
    {
        int y;
        y = v[elem][i];
        DFS(y);
    }
    sort(v[elem].begin(), v[elem].end(), cmp);
    t[elem] = 0;
    for(i = 0; i < v[elem].size(); i++)
    {
        int y;
        y = v[elem][i];
        t[elem] = max(t[elem], i + 1 + t[y]);
    }
}