Cod sursa(job #1468154)

Utilizator horiainfoTurcuman Horia horiainfo Data 5 august 2015 12:36:29
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <fstream>
#include <memory.h>
#include <queue>
#include <vector>
#include <cstdio>

#define NMAX 100002
using namespace std;
ofstream fout("darb.out");

int viz[NMAX],a,b;
vector<int> G[NMAX];
int n,lastNod;

void BFS(int nod)
{
    queue<int> co;
    memset(viz,-1,sizeof(viz));
    viz[nod]=1;
    co.push(nod);
    while(!co.empty())
    {
        lastNod = co.front();
        co.pop();
        for(int i=0;i<G[lastNod].size();i++)
            if(viz[G[lastNod][i]]==-1)
            {
                co.push(G[lastNod][i]);
                viz[G[lastNod][i]]=viz[lastNod]+1;
            }
    }
}

int main()
{
    freopen("darb.in","r",stdin);

    scanf("%d",&n);
    for(int i=1;i<n;i++)
    {
        scanf("%d%d",&a,&b);
        G[a].push_back(b);
        G[b].push_back(a);
    }

    BFS(1);
    BFS(lastNod);

    fout<<viz[lastNod];

    return 0;
}