Cod sursa(job #2815777)

Utilizator Moise_AndreiMoise Andrei Moise_Andrei Data 10 decembrie 2021 11:56:10
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("darb.in");
ofstream out("darb.out");
vector <int> v[100005];
int t, sol;
void f(int x)
{
    queue <int> q;
    q.push(x);
    int c[100005];
    for(int i = 0; i < 100005; i ++)
        c[i] = 0;
    c[x] = 1;
    while(!q.empty())
    {
        int a = q.front();
        for(int i = 0; i < v[a].size(); i ++)
        {
            if(!c[v[a][i]])
            {
                q.push(v[a][i]);
                c[v[a][i]] = c[a] + 1;
                sol = c[v[a][i]];
                t = v[a][i];
            }
        }
        q.pop();
    }
}
int main()
{
    int n, m;
    in >> n;
    for(int i = 1; i < n; i ++)
    {
        int a, b;
        in >> a >> b;
        v[a].push_back(b);
        v[b].push_back(a);
    }
    f(1);
    f(t);
    out << sol;
    return 0;
}