Cod sursa(job #2315211)

Utilizator PopeangaMihneaPopeanga Mihnea- Stefan PopeangaMihnea Data 9 ianuarie 2019 16:42:24
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <bits/stdc++.h>

using namespace std;

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

int n, x, y, h_max, last, primul;
vector<int>G[100001];
bool viz[100001];
int TT[100001];

void DFS(int nod, int h)
{
    viz[nod]=1;
    if(h>h_max)
    {
        last=nod;
        h_max=h;
    }
    for(auto it:G[nod])
    {
        if(!viz[it])
        {
            TT[it]=nod;
            DFS(it, h+1);
        }
    }

}

void afis(int nod)
{
    if(nod==primul) fout<<nod<<" ";
    else
    {
        afis(TT[nod]);
        fout<<nod<<" ";
    }
}

int main()
{
    fin>>n;
    for(int i=1; i<n; ++i)
    {
        fin>>x>>y;
        G[x].push_back(y);
        G[y].push_back(x);
    }
    DFS(1, 1);
    memset(viz, 0, sizeof(viz));
    primul=last;
    DFS(last, 1);
    fout<<h_max<<"\n";
    //afis(last);
    return 0;
}