Cod sursa(job #2530984)

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

using namespace std;

#define pb push_back

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

const int MAXN=1000001;
int n;
queue <int> c;
vector <int> a[MAXN];
int d,l,y[MAXN],v[MAXN];

void bfs(int x)
{
    memset(y,0,MAXN);
    memset(v,0,MAXN);
    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++)
            if(v[a[nod][i]]==0)
            {
                v[a[nod][i]]=1;
                y[a[nod][i]]=y[nod]+1;
                c.push(a[nod][i]);
                l=a[nod][i];
                d=y[a[nod][i]];
            }
        c.pop();
    }
}
int main()
{

    fin >> n;

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

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

    return 0;

}