Cod sursa(job #3213700)

Utilizator radu._.21Radu Pelea radu._.21 Data 13 martie 2024 12:59:10
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <bits/stdc++.h>

using namespace std;
int n,lvlmax = 0,nodmax,d[100001];
vector<int>G[100001];
void dfs(int nod,int lvl,int tata){
    if(lvl>lvlmax)
        lvlmax = lvl,nodmax = nod;
    for(auto x : G[nod])
    if(x!=tata){
        dfs(x,lvl+1,nod);
    }
}
ifstream fin("darb.in");
ofstream fout("darb.out");
int main(){
    fin>>n;
    for(int i=1;i<n;i++)
    {
        int x,y; fin>>x>>y;
        G[x].push_back(y);
        G[y].push_back(x);
    }
   dfs(1,1,0);
    queue<int>Q;
    Q.push(nodmax);
    int rez = 0;
    d[nodmax]=1;
    while(!Q.empty()){
        int nod = Q.front();
        Q.pop();
        for(auto x : G[nod])
            if(d[x]==0){
                d[x]=d[nod]+1,Q.push(x);
            rez = max(rez,d[x]);}
    }
    fout<<rez;
    return 0;
}