Cod sursa(job #2285638)

Utilizator radugnnGone Radu Mihnea radugnn Data 18 noiembrie 2018 20:43:58
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include<fstream>
#include <iostream>
#include <vector>
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
int v[100010],c[100010],lng[100010],i,a,b,mx,n;
vector <int> L[100010];
void bfs(int start){
    v[start]=1;
    c[1]=start;
    int p=1, u=1;
    while(p<=u){
          //  cout<<1;
        int nod=c[p];
        for(i=0;i<L[nod].size();i++){
            int vecin=L[nod][i];
            if(v[vecin]==0){
                c[++u]=vecin;
                lng[vecin]=lng[nod]+1;
                v[vecin]=1;
            }
        }
        p++;
    }

}
int main(){
    fin>>n;
    for(i=1;i<n;i++){
        fin>>a>>b;
        L[a].push_back(b);
        L[b].push_back(a);
    }
    bfs(1);
    mx=c[n];
   // fout<<mx;
    //cout<<lng[c[n]];
    for(i=1;i<=n;i++){
        lng[i]=0;
        v[i]=0;
    }
    bfs(mx);
    fout<<lng[c[n]]+1;
    return 0;
}