Cod sursa(job #1632410)

Utilizator iulian_f2kGuraliuc Iulian iulian_f2k Data 6 martie 2016 09:39:47
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

vector<vector<int> > G;
int N, capat, iCapat;

void dfs(int nod, int d, int prec)
{
    if(d > capat){
        capat = d;
        iCapat = nod;
    }
    for(int i=0; i<G[nod].size(); ++i)
        if(G[nod][i] != prec)
            dfs(G[nod][i], d+1, nod);
}
int main()
{
    freopen("darb.in", "rt", stdin);
    freopen("darb.out", "wt", stdout);

    scanf("%d", &N);
    G.assign(N+1, vector<int>());
    int x, y;
    for(int i=1; i<N; ++i){
        scanf("%d%d", &x, &y);
        G[x].push_back(y);
        G[y].push_back(x);
    }
    dfs(1, 1, -1);
    dfs(iCapat, 1, -1);
    cout<<capat<<'\n';
    return 0;
}