Cod sursa(job #1345551)

Utilizator T.C.11Tolan Cristian T.C.11 Data 17 februarie 2015 18:35:40
Problema Diametrul unui arbore Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include <fstream>
#include <vector>
#include <deque>


using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
vector<int> v[100000];
deque<int> cd;

int i,n,x,y,s[100001],nod,Max;
int main()
{
    fin>>n;
    for (i=1;i<n;i++)
    {
        fin>>x>>y;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    cd.push_back(1);
    while (cd.empty() == false)
    {
        for (vector<int>::iterator it = v[cd.front()].begin(); it != v[cd.front()].end(); ++it )
            if (s[*it]==0)
                s[*it]=1,cd.push_back(*it),nod=*it;
        cd.pop_front();
    }
    for (i=1;i<=n;i++)
        s[i]=0;
    cd.push_back(nod);
    while (cd.empty() == false)
    {
        for (vector<int>::iterator it = v[cd.front()].begin(); it != v[cd.front()].end(); ++it )
            if (s[*it]==0)
                s[*it]=s[cd.front()]+1,Max=s[*it],cd.push_back(*it);
        cd.pop_front();
    }
    fout<<Max+1;
    return 0;
}