Cod sursa(job #2624347)

Utilizator mariamirabella2Bucur-Sabau Maria-Mirabela mariamirabella2 Data 4 iunie 2020 18:48:12
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream cin("darb.in");
ofstream cout("darb.out");

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

void dfs(int nod){
    viz[nod]=1;
    for(auto x:v[nod]){
        if(!viz[x]){
            level[x]=level[nod]+1;
            dfs(x);
        }
    }
}

int n,x,y;

int main()
{
    cin>>n;
    for(int i=1;i<n;i++){
        cin>>x>>y;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    level[1]=1;
    dfs(1);
    int nod,maxx=0;
    for(int i=1;i<=n;i++){
        if(maxx<level[i]){
            maxx=level[i];
            nod=i;
        }
        level[i]=0;
        viz[i]=0;
    }
    level[nod]=1;
    dfs(nod);
    for(int i=1;i<=n;i++){
        if(maxx<level[i]){
            maxx=level[i];
        }
    }
    cout<<maxx;
    return 0;
}