Cod sursa(job #2106045)

Utilizator dumitru123Patularu Mihai dumitru123 Data 14 ianuarie 2018 20:44:48
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
#define nmax 100002
vector < int > matrice[nmax];
int n,m,x,y,maxa;
int viz[nmax],poz;
void DFS(int nod)
{
    if(viz[nod]>maxa)
    {
        maxa=viz[nod];
        poz=nod;
    }
    for(vector < int > ::iterator it=matrice[nod].begin(); it!=matrice[nod].end(); it++)
        if(viz[*it]>viz[nod]+1)
        {
            viz[*it]=viz[nod]+1;
            DFS(*it);
        }
}
int main()
{
    f>>n;
    for(int i=2; i<=n; i++)
    {
        f>>x>>y;
        matrice[x].push_back(y);
        matrice[y].push_back(x);
        viz[i]=nmax;
    }
    viz[1]=1;
    DFS(1);
    for(int i=1; i<=n; i++)
        viz[i]=nmax;
    viz[poz]=1;
    DFS(poz);
    g<<maxa;
    return 0;
}