Cod sursa(job #3335136)

Utilizator Warrior.exeZgorcea Mihai-Alexandru Warrior.exe Data 21 ianuarie 2026 18:18:29
Problema Diametrul unui arbore Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb
#include <iostream>
#include <fstream>
#include <queue>
#include <vector>
#include <string.h>
using namespace std;

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

const int NMAX = 100000;

vector<int>Mat_adi[NMAX+1];
queue <int>Coada;
int distanta[NMAX+1];

int last;

void citire(){
    int nr_noduri;
    int a,b;
    fin>>nr_noduri;
    for(int i=1;i<nr_noduri;i++){
        fin>>a>>b;
        Mat_adi[a].push_back(b);
        Mat_adi[b].push_back(a);
    }
}

void BFS(int start){
    memset(distanta,0,NMAX);
    int nod,dist;
    distanta[start] = 1;
    Coada.push(start);
    while(Coada.empty()==false){
        nod = Coada.front();
        Coada.pop();
        dist = distanta[nod] + 1;
        last = nod;
        for(auto copil:Mat_adi[nod]){
            if(distanta[copil]==0){
                distanta[copil] = dist;
                Coada.push(copil);
            }
        }
    }
}

int main(){
    citire();
    BFS(1);
    BFS(last);
    fout<<distanta[last];
    return 0;
}