Cod sursa(job #3351543)

Utilizator _Fibonacci_Caitaz _Fibonacci_ Data 20 aprilie 2026 09:43:16
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
const long long  max_size=1e5+1;
long long m,i,j,n,x,y,o;
vector <long long> graf[max_size];
bool vizitat[max_size];
long long dist[max_size];


void dfs(int nod,int par) {
    if (vizitat[nod]) return;
    vizitat[nod] = true;
    dist[nod] = dist[par] + 1 ;
    for (auto i:graf[nod])dfs(i,nod);
}


int main()
{
    n = max_size;
    fin >> m ;
    for (i=1;i<=m;i++)
    {
        fin >> x >> y ;
        graf[x].push_back(y);
        graf[y].push_back(x);
        dist[x] = 0 ;
        dist[y] = 0 ;
    }
    dfs(1,0);
    int k=0;
    for (i=1;i<=max_size;i++){
        if (dist[i] > dist[k])k=i;
    }
    for (i=0;i<=max_size;i++){
        vizitat[i] = false;
        dist[i] = 0 ;
    }
    dfs(k,0);
    k=0;
    for (i=1;i<=max_size;i++){
        if (dist[i] > dist[k])k=i;
    }
    fout << dist[k] << "\n";
    return 0;
}