Cod sursa(job #1701444)

Utilizator Nevermore10Macovei Cosmin Nevermore10 Data 13 mai 2016 02:49:02
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <cstdlib>
#include <fstream>
#include <vector>
using namespace std;

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

int n,start,c[100001],u,p,lungime;
vector <int> v[100001];
int viz[100001];
void read() {
    f >> n;
    for(int i = 0; i < n-1; i++) {
        int a,b;
        f >> a >> b;
        v[a].push_back(b);
        v[b].push_back(a);
    }
}

void BF(int x)
{
    lungime = 1;
    c[1]=x;
    viz[x]=1;
    p=u=1;
    while(p <= u) {
        int nod = c[p];
        p++;
        for(int i = 0; i < v[nod].size(); i++) {
            if(!viz[v[nod][i]]) {
                u++;
                c[u] = v[nod][i];
                viz[v[nod][i]] = viz[nod] + 1;

            }

        }

    }
    start = c[u];
}

int main(int argc, char** argv) {
    read();
    BF(1);
    for(int i = 1; i <= n; i++) {
        viz[i] = 0;
    }
    BF(start);
    g << viz[start];
    return 0;
}