Cod sursa(job #2422571)

Utilizator AlexBolfaAlex Bolfa AlexBolfa Data 19 mai 2019 11:48:02
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <bits/stdc++.h>
#define MAX 100005
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");

int n,poz;
int Dist[MAX];
bool Intalnit[MAX];
vector<int> V[MAX];
queue<int> Q;

void citire();
void Bfs(int);

int main(){
    citire();
    Bfs(1);
    Bfs(poz);
    fout<<Dist[poz]<<'\n';
    return 0;
}
void Bfs(int x){
    int q,sz,d;
    memset(Intalnit,0,sizeof(Intalnit));
    memset(Dist,0,sizeof(Dist));
    Q.push(x);
    Dist[x]=1;
    while(!Q.empty()){
        x=Q.front();
        poz=x;
        d=Dist[x];
        sz=V[x].size();

        for(q=0;q<sz;++q){
            if(!Intalnit[V[x][q]]){
                Dist[V[x][q]]=d+1;
                Q.push(V[x][q]);
            }
        }

        Intalnit[x]=1;
        Q.pop();
    }
}
void citire(){
    int i,a,b;
    fin>>n;
    for(i=0;i<n;++i){
        fin>>a>>b;
        V[a].push_back(b);
        V[b].push_back(a);
    }
}