Cod sursa(job #1155443)

Utilizator oprea1si2si3Oprea Sebastian oprea1si2si3 Data 26 martie 2014 21:56:23
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<fstream>
#include<vector>
#include<cstring>
#include<algorithm>
using namespace std;
ifstream in("zvon.in");
ofstream out("zvon.out");

int dp[100010],t,N;
vector <int> Muchie[100010];

bool cmp(int a,int b){
    return (dp[a]>dp[b]);
}

void dfs(int nod) {

    int i,vecin;
    for(i=0;i<Muchie[nod].size();i++) {
        vecin=Muchie[nod][i];
        dfs(vecin);
    }
    sort(Muchie[nod].begin(),Muchie[nod].end(),cmp);
    for(i=0;i<Muchie[nod].size();i++){
        vecin=Muchie[nod][i];
        dp[nod]=max(dp[nod],1+dp[vecin]+i);
    }


}

int main() {

    int i,x,y;
    in>>t;
    while(t) {
        t--;
        in>>N;
        for(i=1;i<=N-1;i++) {
            in>>x>>y;
            Muchie[x].push_back(y);
        }
        dfs(1);
        out<<dp[1]<<'\n';
        memset(dp,0,sizeof dp);
        memset(Muchie,0,sizeof Muchie);

    }
    in.close();
    out.close();
    return 0;

}