Cod sursa(job #2671742)

Utilizator TraianVVisan Traian-Dimitrie TraianV Data 12 noiembrie 2020 17:21:18
Problema Diametrul unui arbore Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <bits/stdc++.h>

using namespace std;

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

queue <int> c;
vector <int> nod[1000005];
int sol,y,n;

void bfs(int x)
{
    int v[1000005],viz[1000005];
    memset(viz,0,1000004);
    memset(v,0,1000004);
    c.push(x);
    v[x]=1;
    viz[x]=1;
    while(!c.empty())
    {
        int aux=c.front();
        for(int i=0;i<nod[aux].size();i++)
        {
            if(v[nod[aux][i]]==0)
            {
                viz[nod[aux][i]]=1;
                v[nod[aux][i]]=v[aux]+1;
                c.push(nod[aux][i]);
                y=nod[aux][i];
                sol=v[nod[aux][i]];
            }
        }
        c.pop();
    }
}
int main()
{

    f >> n;

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

    bfs(1);
    bfs(y);
    g << sol;
    f.close();
    g.close();
    return 0;

}