Cod sursa(job #197333)

Utilizator radu_voroneanuVoroneanu Radu Stefan radu_voroneanu Data 3 iulie 2008 17:33:55
Problema Zvon Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <algorithm>
#include <stdio.h>
#include <vector>
#define sz(a) (int)((a).size())

using namespace std;

int din[100];
vector<int> fi[100];
int nr,x,y,n;

int cmp(const int a, const int b)
 { return din[a]<din[b];}
 
void parcurg(int x)
 {
        int m;
        m=(int)fi[x].size();
        for (int i=0; i<m; ++i)
        {
                parcurg(fi[x][i]);
        }
        sort(fi[x].begin(), fi[x].end(), cmp);
        din[x]=0;
        for (int i=0; i<m; ++i)
                if (din[x]<din[fi[x][i]]+m-i)
                        din[x]=din[fi[x][i]]+m-i;
 }
 
int main()
 {
        freopen("zvon.in","r",stdin);
        freopen("zvon.out","w",stdout);
        scanf("%d",&nr);
        for (; nr>0; --nr)
        {
                scanf("%d",&n);
                for (int i=1; i<=n; ++i)
                  fi[i]=fi[0];
                for (int i=0; i<n-1; ++i)
                {
                        scanf("%d %d",&x,&y);
                        fi[x].push_back(y);
                }
                parcurg(1);
                printf("%d\n",din[1]);
        }
        fclose(stdin); fclose(stdout);
        return 0;
 }