Cod sursa(job #2245989)

Utilizator tifui.alexandruTifui Ioan Alexandru tifui.alexandru Data 26 septembrie 2018 12:49:33
Problema Zvon Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <bits/stdc++.h>
#define Nmax 100005
using namespace std;

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

vector <int> G[Nmax];
int _time[Nmax];
int n,maxx;

void read()
{
    f>>n;
    int x,y,i;
    for(i=1;i<n;i++)
    {
        f>>x>>y;
        G[x].push_back(y);
    }
}

void clear_data()
{
    maxx=0;
    for(int i=1;i<=n;i++)
    {
        G[i].clear();
        _time[i]=0;
    }
}

inline int comp(const int &lsh, const int &rsh)
{
    return G[lsh].size()>G[rsh].size();
}

void DFS(int node)
{
    maxx=max(_time[node],maxx);
    int no=1;
    for(const auto &it:G[node])
    {
        _time[it]=_time[node]+no;
        ++no;
        DFS(it);
    }
}

void solve()
{
    _time[1]=0;
    for(int i=1;i<=n;i++)
        sort(G[i].begin(),G[i].end(),comp);
    DFS(1);
    g<<maxx<<'\n';
}

int main()
{
    int T;
    f>>T;
    while(T--)
    {
        read();
        solve();
        clear_data();
    }

    return 0;
}