Cod sursa(job #2159626)

Utilizator UnseenMarksmanDavid Catalin UnseenMarksman Data 11 martie 2018 05:46:12
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <bits/stdc++.h>
#include <cstring>
#define N 100002

using namespace std;

int n, ans=1, l=1, nod;
bool ok[N];
vector<int>A[N];

void dfs(int x)
{
    ok[x]=1;
    if(l>ans) ans=l, nod=x;
    for(auto it:A[x])
        if(!ok[it]) l++, dfs(it), l--;
}

int main()
{
    freopen("darb.in", "r", stdin);
    freopen("darb.out", "w", stdout);

    scanf("%d", &n);
    for(int i=1; i<n; i++)
    {
        int n1, n2;
        scanf("%d %d", &n1, &n2);
        A[n1].push_back(n2);
        A[n2].push_back(n1);
    }
    dfs(1);
    memset(ok,0,N);
    dfs(nod);
    printf("%d\n", ans);
    return 0;
}