Cod sursa(job #2101230)

Utilizator FunnyStockyMihnea Andreescu FunnyStocky Data 6 ianuarie 2018 23:51:17
Problema Diametrul unui arbore Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("darb.in");
ofstream cout("darb.out");
const int nmax=100000;
int n,l[nmax+5];
vector<int>copil[nmax+5];
int cost[nmax+5],sol[nmax+5];
void dfs(int nod,int nr)
{
    for(int i=0;i<l[nod];i++)
    {
        int nou=copil[nod][i];
        cost[nou]=nr+1;
        dfs(nou,nr+1);
    }
}
int main()
{
    cin>>n;
    for(int i=1;i<n;i++)
    {
        int a,b;
        cin>>a>>b;
        l[a]++;
        copil[a].push_back(b);
    }
    dfs(1,0);
    for(int i=1;i<=n;i++)
        if(l[i]==0)
            sol[cost[i]]++;
    int ans=0,fol=0;
    for(int i=n;i>=1;i--)
    {
        for(int j=1;j<=sol[i];j++)
        {
            ans+=i;
            fol++;
            if(fol==2)
            {
                cout<<ans;
                return 0;
            }
        }
    }
    return 0;
}
/**

**/