Cod sursa(job #1320397)

Utilizator Consti.001FMI Dranca Constantin Consti.001 Data 17 ianuarie 2015 22:47:22
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include<fstream>
#include<vector>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
vector <int> l[100001];
int n,v[100001],i,j,c[100001],nod1,nod2;
void read(int nod)
{
    int i=0;
    i=nod;
    f>>n;
    int xul=0;
    int yul=0;
    for(i=1;i<=n-1;i++)
    {
        f>>xul>>yul;
        l[xul].push_back(yul);
        l[yul].push_back(xul);
    }
}
void bfs(int nod,int &nod1)
{
    v[nod]=1;
    c[1]=nod;
    int st,dr;
    st=1;dr=1;
    while(st<=dr)
    {
        int k=c[st];
        for(int i=0;i<l[k].size();i++)
        if(v[l[k][i]]==0)
        {
            dr++;
            c[dr]=l[k][i];
            v[l[k][i]]=v[k]+1;
        }
        st++;
    }
    nod1=c[dr];

}
int main()
{
    read(1);
    bfs(1,nod1);
    for(i=1;i<=n;i++)
    v[i]=0;
    bfs(nod1,nod2);
    g<<v[nod2];

    return 0;
}