Cod sursa(job #3286665)

Utilizator stefanrotaruRotaru Stefan-Florin stefanrotaru Data 14 martie 2025 15:06:46
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

ifstream f("darb.in");
ofstream g("darb.out");

int n, ans, nodUltim, x, y;

vector <int> a[100005];

queue <int> q;

inline void bfs(int start)
{
    bool viz[100005] = {0};

    int cost[100005] = {0};

    cost[start] = 1;
    viz[start] = 1;

    q.push(start);

    while (!q.empty()) {
        int nod = q.front();

        q.pop();

        for (auto it : a[nod]) {
            if (!viz[it]) {
                viz[it] = 1;

                q.push(it);

                cost[it] = cost[nod] + 1;

                ans = cost[it];
                nodUltim = it;
            }
        }
    }
}

int main()
{
    f >> n;

    for (int i = 1; i < n; ++i) {
        f >> x >> y;

        a[x].push_back(y);
        a[y].push_back(x);
    }

    bfs(1);

    bfs(nodUltim);

    g << ans;

    return 0;
}