Cod sursa(job #2667700)

Utilizator thedorbulacovschittrter thedorbulacovschi Data 3 noiembrie 2020 19:14:37
Problema Diametrul unui arbore Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

ifstream fin("darb.in");
ofstream fout("darb.out");

int viz[100005];
vector <int> v[100005];

int n,m,ans;

void dfs(int nod){
    for(auto it:v[nod]){
        if(viz[it]==0){
            viz[it]=max(viz[nod],0)+1;
            dfs(it);
        }
    }
}

int a,b;

int main()
{
    cin>>n;
    for(int i=1;i<n;i++){
        cin>>a>>b;
        v[a].push_back(b);
        v[b].push_back(a);
    }
    viz[1]=-1;
    dfs(1);
    int nmax=1;
    for(int i=1;i<=n;i++){
        if(viz[i]>viz[nmax])
            nmax=i;
    }
    for(int i=1;i<=n;i++)
        viz[i]=0;
    viz[nmax]=-1;
    dfs(nmax);
    nmax=0;
    for(int i=1;i<=n;i++){
        nmax=max(nmax,viz[i]);
    }
    cout<<nmax+1<<'\n';
    return 0;
}