Cod sursa(job #2674197)

Utilizator Iulia14iulia slanina Iulia14 Data 18 noiembrie 2020 19:21:21
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream cin ("darb.in");
ofstream cout ("darb.out");
vector <int> lista[100005];
int viz[100005];
int dist[100005];
queue <int> q;
void dfs(int nod, int daddy)
{
    dist[nod] = 1 + dist[daddy];
    for (int i = 0; i < lista[nod].size(); i++)
    {
        int x = lista[nod][i];
        if (x == daddy)
            continue;
        dfs(x, nod);
    }
}
int main()
{
    int n, i;
    cin >> n;
    for (i = 1; i < n; i++)
    {
        int x, y;
        cin >> x >> y;
        lista[x].push_back(y);
        lista[y].push_back(x);
    }
    dfs(1, 0);
    int dani = 0;
    for (i = 1; i <= n; i++)
        if (dist[dani] < dist[i])
            dani = i;
    dfs(dani, 0);
    for (i = 1; i <= n; i++)
        if (dist[dani] < dist[i])
            dani = i;
    cout << dist[dani];
    return 0;
}