Cod sursa(job #1993576)

Utilizator infomaxInfomax infomax Data 23 iunie 2017 12:04:32
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream F("darb.in");
ofstream G("darb.out");

int maxx, x, y, u, w[100003], n;
vector<int> v[100003];

void dfs(int nod, int np)
{
    w[nod] = w[np] + 1;
    vector<int> :: iterator it;
    for(it = v[nod].begin(); it != v[nod].end(); ++ it)
        if(!w[*it]) dfs(*it, nod);
}

int main()
{
    F >> n;
    for(int i = 0; i < n - 1; ++ i)
    {
        F >> x >> y;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    dfs(1, 1);
    for(int i = 1; i <= n; ++ i)
    {
        if(w[i] > maxx) maxx = w[i], u = i;
        w[i] = 0;
    }
    dfs(u, u);
    maxx = 0;
    for(int i = 1; i <= n; ++ i)
        if(w[i] > maxx) maxx = w[i];
    G << maxx;
    return 0;
}