Cod sursa(job #2408022)

Utilizator Ioana_GaborGabor Ioana Ioana_Gabor Data 17 aprilie 2019 15:01:29
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb

#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#define NMAX 100000

using namespace std;

ifstream f("darb.in");
ofstream g("darb.out");

int n,x,y,dist[NMAX+1],viz[NMAX+1],last;
vector <int> nod[NMAX+1];
queue <int> q;

void bfs(int start){
    q.push(start);
    for(int i=1;i<=n;i++){
        dist[i]=0;
        viz[i]=0;
    }
    dist[start]=1;
    while(!q.empty()){
        x=q.front();
        q.pop();
        viz[x]=1;
        last=x;
        for(int i=0;i<nod[x].size();i++){
            if(!viz[nod[x][i]]){
                q.push(nod[x][i]);
                dist[nod[x][i]]=dist[x]+1;
            }
        }
    }
}

int main(){
    f>>n;
    for(int i=1;i<n;i++){
        f>>x>>y;
        nod[x].push_back(y);
        nod[y].push_back(x);
    }
    bfs(1);
    bfs(last);
    g<<dist[last];
    f.close();
    g.close();
}