Cod sursa(job #2198239)

Utilizator MaraForinaMaria Florina MaraForina Data 23 aprilie 2018 22:58:56
Problema Diametrul unui arbore Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include <iostream>
#include <fstream>

using namespace std;

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

struct nod
{
    int vf;
    nod *urm;
};

nod *v[100002];

long long n,viz[10002],c[10002],k;

void citire()
{
    fin>>n;
    long long i,x,y;
    nod *p,*q;
    for(i=1;i<=n;++i)
        v[i]=NULL;
    while(fin>>x>>y)
    {
        p=new nod;
        p->vf=x;
        p->urm=v[y];
        v[y]=p;
        q=new nod;
        q->vf=y;
        q->urm=v[x];
        v[x]=q;
    }
}

long long bf(long long x)
{
    long long p,u,i,vf1;
    nod *q;
    for(i=1;i<=n;++i)
        viz[i]=0;
    p=u=1;
    c[p]=x;
    viz[x]=1;
    while(p<=u)
    {
        x=c[p++];
        for(q=v[x];q;q=q->urm)
        {
            vf1=q->vf;
            if(viz[vf1]==0)
            {
                c[++u]=vf1;
                viz[vf1]=viz[x]+1;
            }
        }
    }
    k=viz[c[u]];
    return c[u];
}

int main()
{
    citire();
    bf(bf(1));
    fout<<k;
    return 0;
}