Cod sursa(job #1198310)

Utilizator armandpredaPreda Armand armandpreda Data 15 iunie 2014 13:29:43
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <cstdio>
#include <vector>
#include <cstring>
#define MAX 100001

using namespace std;

vector <int> lista[MAX];
int n, v[MAX], nr, nodul;
void dfs(int nod, int k);
int main()
{
    freopen("darb.in", "r", stdin);
    freopen("darb.out", "w", stdout);
    int i, x, y;
    scanf("%d", &n);
    for(i=1; i<n; ++i)
    {
        scanf("%d%d", &x, &y);
        lista[x].push_back(y);
        lista[y].push_back(x);
    }
    dfs(1, 0);
    memset(v, 0, (n+1)*sizeof(int));
    dfs(nodul, 0);
    printf("%d", nr+1);
}
void dfs(int nod, int k)
{
    if(k>nr)
        nr=k, nodul=nod;
    v[nod]=1;
    for(int i=0; i<lista[nod].size(); ++i)
        if(!v[lista[nod][i]])
            dfs(lista[nod][i],k+1);
}