Cod sursa(job #3294980)

Utilizator M132M132 M132 M132 Data 1 mai 2025 10:17:32
Problema Diametrul unui arbore Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;

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

const int nmax = 100000;
vector <int> vecini[nmax + 5];
int d[nmax + 5];

void calcul(int nod, int parinte)
{
    int i;
    for(i = 0; i < vecini[nod].size(); ++i)
    {
        int newnod = vecini[nod][i];
        if(newnod != parinte)
        {
            d[newnod] = 1 + d[nod];
            calcul(newnod, nod);
        }
    }
}

bool comp(int a, int b)
{
    return a > b;
}

int main()
{
    int n, i, x, y;
    f >> n;
    for(i = 1; i < n; ++i)
    {
        f >> x >> y;
        vecini[x].push_back(y);
        vecini[y].push_back(x);
    }
    d[1] = 0;
    calcul(1, 0);
    sort(d + 1, d + n + 1, comp);
    g << d[1] + d[2] + 1 << "\n";
    return 0;
}