Cod sursa(job #2412787)

Utilizator EdgeLordXDOvidiuPita EdgeLordXD Data 22 aprilie 2019 15:50:40
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <bits/stdc++.h>
#define N 100005
using namespace std;
ifstream in("darb.in");
ofstream out("darb.out");
vector<int> a[N];
queue<int>q;
int v[N];
int main(){
    int n,i,x,y;
	in>>n;
    for(i=1; i<n; ++i){
        in>>x>>y;
        a[x].push_back(y);
        a[y].push_back(x);
    }
    v[1]=-1;
    q.push(1);
    while(!q.empty()){
        i=q.front();
        for(auto it:a[i])
            if(!v[it]){
                v[it]=-1;
                q.push(it);
            }
        q.pop();
    }
    v[i]=1;
    q.push(i);
    while(!q.empty()){
        i=q.front();
        for(auto it:a[i])
            if(v[it]==-1){
                v[it]=v[i]+1;
                q.push(it);
            }
        q.pop();
    }
    out<<v[i];
    return 0;
}