Cod sursa(job #1891571)

Utilizator stanciuandreiStanciulescu Andrei stanciuandrei Data 24 februarie 2017 09:56:22
Problema Zvon Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <iostream>
#include <vector>
#include <fstream>
#define NMAX 100000 + 4
using namespace std;

ifstream in("zvon.in");
ofstream out("zvon.out");
vector<int> graph[NMAX];
int timpi[NMAX];
int T, n, x, y, ans;

void DFS(int start){
    timpi[start] = 0;
    int maxval = 0, maxap = 0;
    if(graph[start].size()==0){
        timpi[start] = 1;
        return;
    }
    for(unsigned int i=0;i<graph[start].size();i++){
        DFS(graph[start][i]);
    }
    for(unsigned int i=0;i<graph[start].size();i++){
        if(timpi[graph[start][i]]>maxval){
            maxval = timpi[graph[start][i]];
            maxap = 1;
        }
        else if(timpi[graph[start][i]] == maxval)
            maxap++;
    }
    timpi[start] = maxval + maxap;
}

int main()
{
    in>>T;
    while(T){
        T--;
        in>>n;
        for(int i=0;i < n-1;i++){
            in>>x>>y;
            graph[x].push_back(y);
        }
        DFS(1);
        out<<timpi[1] - 1<<'\n';
        for(int i=0;i<n;i++){
            timpi[i] = 0;
            graph[i].clear();
        }
        ans = 0;
    }
    return 0;
}