Cod sursa(job #1238231)

Utilizator CostanMiriamCostan Miriam CostanMiriam Data 6 octombrie 2014 00:56:56
Problema Diametrul unui arbore Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>
#include <vector>
#include <cstring>

using namespace std;

ifstream fin ("darb.in");
ofstream fout ("darb.out");

int n,x,y,i,niv,p,u,ok;

int c[100010],f[100010];

vector <int> l[100010];

void bfs (int nod) {
    memset (f,0,sizeof(f));
    f[nod]=1;
    c[1]=nod;
    p=u=1;
    while (p<=u) {
        nod=c[p];ok=0;
        for (int i=0;i<l[nod].size();i++)
            if (!f[l[nod][i]]) {
                ok=1;
                c[++u]=l[nod][i];
                f[l[nod][i]]=1;
            }
        if (ok)
            niv++;
        p++;
    }
}

int main () {

    fin>>n;
    for (i=1;i<n;i++) {
        fin>>x>>y;
        l[x].push_back(y);
        l[y].push_back(x);
    }
    bfs(1);
    niv=0;
    bfs(c[n]);
    fout<<niv<<"\n";

    return 0;
}