Cod sursa(job #2530963)

Utilizator StasBrega Stanislav Stas Data 25 ianuarie 2020 15:23:13
Problema Diametrul unui arbore Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <bits/stdc++.h>

using namespace std;

#define pb push_back

ifstream fin("darb.in");
ofstream fout("darb.out");

int n;
queue <int> c;
vector <int> a[100005];
int d,l;

void bfs(int x)
{
    int y[100005],v[100005];
    memset(y,0,100004);
    memset(v,0,100004);
    c.push(x);
    v[x]=1;
    y[x]=1;
    while(!c.empty())
    {
        int nod=c.front();
        for(int i=0;i<a[nod].size();i++)
        {
            int vecin=a[nod][i];
            if(v[vecin]==0)
            {
                v[vecin]=1;
                y[vecin]=y[nod]+1;
                c.push(vecin);
                l=vecin;
                d=y[vecin];
            }
        }
        c.pop();
    }
}
int main()
{

    fin >> n;

    for(int i=1;i<=n-1;i++)
    {
        int x,y;
        fin >> x >> y;
        a[x].pb(y);
        a[y].pb(x);
    }

    bfs(1);
    bfs(l);
    fout << d;

    return 0;

}