Cod sursa(job #1493966)

Utilizator tidehyonBosoi Bogdan tidehyon Data 30 septembrie 2015 11:05:19
Problema Diametrul unui arbore Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.08 kb
#include <iostream>
#include <fstream>
#include <string.h>
#define N_MAX 10001
using namespace std;

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

int n,M[N_MAX][N_MAX];
int c[N_MAX],viz[N_MAX],prim,ultim,varf,h;


void Read()
{
    short x,y;
    f >> n;
    for(short i = 1 ; i < n; i++)
    {

        f >> x >> y;
        M[x][y] = M[y][x] = 1;
    }
    f.close();
}
void BF()
{
    int k;
    h = 0;
    bool r;
    while(prim <= ultim)
    {
        r = 0;
        varf = c[prim];
        for(k = 1; k <= n; k++)
        if(M[varf][k] && !viz[k])
        {
            if(!r)
            {
                h++;
                r = 1;
            }
            ultim++;
            viz[k] = 1;
            c[ultim] = k;
        }
        prim++;
    }
}
int main()
{
    prim = ultim = 1;
    c[prim] = 1;
    viz[1] = 1;
    Read();
    BF();
    short k = c[ultim];
    memset(c,0,N_MAX);
    memset(viz,0,N_MAX);
    prim = ultim = 1;
    c[prim] = k;
    viz[k] = 1;
    BF();
    g << h;
    g.close();
    return 0;
}