Cod sursa(job #2297276)

Utilizator cezarzbughinCezar Zbughin cezarzbughin Data 5 decembrie 2018 17:53:27
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
const int N = 100010;
int n,x,y,i,k,sol,diam[N],Q[N];
vector<int> v[N];
void bfs(int);
int main()
{
    f>>n;
    for(i=1; i<n; i++)
    {
        f>>x>>y;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    bfs(1);
    bfs(Q[n]);
    g<<diam[Q[n]];
    return 0;
}
void bfs(int nod)
{
    fill(diam+1,diam+n+1,0);
    Q[1]=nod;
    diam[nod]=1;
    for(int lo=1,hi=1;lo<=hi;lo++)
    {
        for(auto vec:v[Q[lo]])
            if(!diam[vec])
            {
                diam[vec]=diam[Q[lo]]+1;
                Q[++hi]=vec;
            }
    }
}