Cod sursa(job #1493658)

Utilizator tidehyonBosoi Bogdan tidehyon Data 29 septembrie 2015 19:10:06
Problema Diametrul unui arbore Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.11 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int a[10001][10001],c[10001],viz[10001];
int n,prim,ultim,varf,h;

void Read()
{
    f >> n;
    int x,y;
    for(int i = 1; i < n; i++)
    {
        f >> x >> y;
        a[x][y] = a[y][x] = 1;
    }
}

void BF()
{
    h = 0;
    int k;
    while(prim <= ultim)
    {
        varf = c[prim];
        bool r = 0;
        for(k=1; k<=n; k++)
        {
            if(a[varf][k] == 1 && viz[k]==0)
            {
                if (!r)
                {
                    h++;
                    r=1;
                }
                ultim++;
                c[ultim] = k;
                viz[k] = 1;
            }
        }

        prim++;
    }
}
int main()
{
    Read();
    prim = ultim = 1;
    viz[1] = 1;
    c[prim] = 1;
    BF();
    int k = c[ultim];
    prim = ultim = 1;
    for(int i = 1; i <= n; i++)
    {
        viz[i] = 0;
        c[i] = 0;
    }
    viz[k] = 1;
    c[prim] = k;
    BF();
    g << h;
    g.close();
    return 0;
}