Cod sursa(job #2225118)

Utilizator racheriunicolaechowchow racheriunicolae Data 25 iulie 2018 22:45:42
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <bits/stdc++.h>
const int NMAX = 1e5 + 5;
using namespace std;
int ans , f[NMAX], nod;
vector <int> a[NMAX];
void dfs(int x , int pas)
{
    int i;
    if(f[x])return;
    f[x] = 1;
    ans = max(ans , pas);
    if(ans == pas) nod = x;
    for(i=0;i<a[x].size();i++)
        dfs(a[x][i] , pas + 1);
}
int n, i , x , y;

int main()
{
   ifstream fin("darb.in");
    ofstream fout("darb.out");
    fin >> n;
    for(i=1;i<=n;i++)
    {
        fin >> x >> y;
        a[x].push_back(y);
        a[y].push_back(x);
    }
    dfs(1, 0);
    x = nod;
    ans = 0;
    for(i=0;i<=n;i++)f[i] = 0;
    dfs(nod , 0);
    fout << ans + 1;
    return 0;
}