Cod sursa(job #1632534)

Utilizator roxannemafteiuMafteiu-Scai Roxana roxannemafteiu Data 6 martie 2016 10:26:52
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
#include <vector>

using namespace std;


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

const int N_MAX = 1e5;

int N;
vector<int> G[N_MAX + 5];
pair<int, int> last;

void read()
{
    fin >> N;
    for(int i = 1; i <= N; ++i)
    {
        int x, y;
        fin >> x >> y;
        G[x].push_back(y);
        G[y].push_back(x);
    }
}

void DFS(int node, int padre, int level)
{
    last = max(last, make_pair(level, node));

    for(int son : G[node])
    {
        if(son != padre)
            DFS(son, node, level + 1);
    }
}

void solve()
{
    DFS(1, 0, 1);
    int start = last.second;
    last = make_pair(0, 0);

    DFS(start, 0, 1);
    fout << last.first << '\n';

}

int main()
{
    read();
    solve();
    return 0;
}