Cod sursa(job #1929108)

Utilizator raulmuresanRaul Muresan raulmuresan Data 17 martie 2017 09:00:07
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <cstring>

using namespace std;

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

int t,n;

const int NMAX = 100005;

vector<int> L[NMAX];
int R[NMAX];

void read(){
    int x,y;
    in >> n;
    for(int i=1;i<n;i++){
        in >> x >> y;
        L[x].push_back(y);
    }
}
bool cmp(int a, int b){
    return R[a]>R[b];
}
int dfs(int nod){
    int c=1;
    for(int i = 0; i < L[nod].size(); i++)
    {
        dfs(L[nod][i]);
    }
    /*for(auto x : L[st]){
        dfs(x);
    }*/
    sort(L[nod].begin(),L[nod].end(),cmp);
     for(int i = 0; i < L[nod].size(); i++)
     {
         int vecin = L[nod][i];
          R[nod]=max(R[nod], R[vecin] + i + 1);
        //c++;

     }
}
void solve_test(){
    dfs(1);
    fout<<R[1]<<"\n";
    memset(R,0,sizeof(R));
    for(int i=1;i<=n;i++){
        L[i].resize(0);
    }
}
void solve(){
    in>>t;
    while(t --)
    {
        read();
        solve_test();
    }
}
int main(){
    solve();
    return 0;
}