Cod sursa(job #1914383)

Utilizator MelacasKorian Ebraahim Melacas Data 8 martie 2017 16:45:07
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <cstdio>
#include <vector>

using namespace std;

vector <int> muchii[100001];

int maxim=0,maxim1=0;

void DFS(int x,int pass,int val)
{
    if (val>maxim) maxim=val, maxim1=x;
    int l=muchii[x].size();
    for (int i=0;i<l;++i)
        if (muchii[x][i]!=pass)
        DFS(muchii[x][i],x,val+1);
}

int main()
{
    freopen("darb.in","r",stdin);
    freopen("darb.out","w",stdout);
    int n;
    scanf("%d",&n);
    for (int i=1;i<n;++i)
    {
        int a,b;
        scanf("%d %d\n",&a,&b);
        muchii[a].push_back(b);
        muchii[b].push_back(a);
    }
    DFS(1,0,1);
    int nr=maxim1;
    maxim1=0, maxim=0;
    DFS(nr,0,1);
    printf("%d",maxim);
}