Cod sursa(job #1919756)

Utilizator RaZxKiDDavid Razvan RaZxKiD Data 9 martie 2017 20:56:26
Problema Zvon Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <cstring>

using namespace std;

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

int t,n;

vector<int> L[100005];
bool U[100005];

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 L[a].size()>L[b].size();
}
int dfs(int st, int base){
    int c=1,rm=base;
    U[st]=1;
    for(auto x : L[st]){
        if(!U[x]){
            rm=max(dfs(x,base+c),rm);
            c++;
        }
    }
    return rm;
}
void solve_t(){
    for(int i=1;i<=n;i++){
        sort(L[i].begin(),L[i].end(),cmp);
    }
    out<<dfs(1,0)<<"\n";
    memset(U,0,sizeof(U));
    for(int i=1;i<=n;i++){
        L[i].clear();
    }
}
void solve(){
    in>>t;
    for(int o=1;o<=t;o++){
        read();
        solve_t();
    }
}
int main(){
    solve();
    return 0;
}