Cod sursa(job #2769883)

Utilizator stefanvoicaVoica Stefan stefanvoica Data 18 august 2021 11:28:53
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <bits/stdc++.h>
#define dim 100002
//#define int long long
using namespace std;
ifstream fin ("darb.in");
ofstream fout("darb.out");
//const int inf=100000000000000;
vector<int> a[dim];
int niv[dim],maxi,nod;

void dfs (int x,int tata)
{
    if (niv[x]>maxi)
    {
        maxi=niv[x];
        nod=x;
    }
    for (auto y:a[x])
        if (y!=tata)
        {
            niv[y]=niv[x]+1;
            dfs(y,x);
        }
}

void Solve ()
{
    int i,n,x,y;
    fin>>n;
    for (i=1; i<n; i++)
    {
        fin>>x>>y;
        a[x].push_back(y);
        a[y].push_back(x);
    }
    niv[1]=1;
    dfs(1,0);
    niv[nod]=1;
    dfs(nod,0);
    fout<<maxi<<'\n';
}

int32_t main()
{
    int t=1;
    //  fin>>t;
    while (t--)
    {
        Solve();
    }
    return 0;
}