Cod sursa(job #3324965)

Utilizator Martin_BohonyiMartin Bohonyi Martin_Bohonyi Data 24 noiembrie 2025 12:21:46
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include<fstream>
#include<vector>
#include<queue>
#include<cstring>

using namespace std;

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

int N , Maxx1 , F;
vector<vector<int>>G;
int Dist[100005];

void BFS(int NodCrt){
     memset(Dist,0,(N+1)*sizeof(int));
     Dist[NodCrt]=1;
     queue<int>Q;
     Q.push(NodCrt);
     while(!Q.empty()){
          int Nod=Q.front();
          if(Dist[Nod] > Maxx1){
             Maxx1=Dist[Nod];
             F=Nod;
          }
          Q.pop();
          for(int NodNou : G[Nod]){
               if(!Dist[NodNou]){
                   Dist[NodNou]=Dist[Nod]+1;
                   Q.push(NodNou);
               }
          }
     }
 }

int main()
{
cin>>N;
G.resize(N+1);
for(int i=1 ; i<=N-1 ; i++){
    int Nod1 , Nod2;
    cin>>Nod1>>Nod2;
    G[Nod1].push_back(Nod2);
    G[Nod2].push_back(Nod1);
 }

BFS(1);
Maxx1=0;
BFS(F);
cout<<Maxx1<<'\n';
return 0;
}