Cod sursa(job #2241193)

Utilizator AnDrEeA1915Monea Andreea AnDrEeA1915 Data 15 septembrie 2018 11:46:11
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include<fstream>
#include<vector>
#define ui unsigned int
using namespace std;

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

const int nmax = 100001;
int n, dist = 0, last, Nr[nmax], viz[nmax];
vector<int> adj[nmax];

void DFS(int x, int d)
{
    if (d > dist)
    {
        dist = d;
        last = x;
    }
    viz[x] = 1;
    for(ui i = 0; i < adj[x].size(); ++i)
        if (!viz[adj[x][i]])
          DFS(adj[x][i], d+1);
}

void citire ()
{
    int x, y;
    fin >> n;
    for(int i = 0; i < n; ++i){
        fin >> x >> y;
        adj[x].push_back(y);
        adj[y].push_back(x);
    }

}

int main()
{
    citire();
    DFS(1, 1);
    for(int i = 1; i <= n ; ++i)
            viz[i] =0;
    DFS(last, 1);
    fout << dist << endl;
    return 0;
}