Cod sursa(job #2691982)

Utilizator miramaria27Stroie Mira miramaria27 Data 30 decembrie 2020 23:00:00
Problema Diametrul unui arbore Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <iostream>
#include <queue>
#include <vector>
#include <list>
#include <fstream>
#include <string.h>

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

queue <int> q;
int viz[100002];
list <int> ad[100002];

int bfs()
{

    int nod;
    while(!q.empty())
    {
        nod = q.front();

        for(auto &node: ad[nod])
        {
            if(viz[node] == 0)
            {
                viz[node] = viz[nod] + 1;
                q.push(node);
            }

        }
        q.pop();
    }
    return nod;

}
int main()
{
    int n;
    fin>>n;
    for(int i = 1; i < n; i ++)
    {
        int a,b;
        fin>>a>>b;
        ad[a].push_back(b);
        ad[b].push_back(a);
    }
    int s = 1;
    viz[s] = 1;
    q.push(s);
    int nod = bfs();
    memset(viz,0,n*sizeof(viz[0]));
    viz[nod] = 1;
    q.push(nod);
    int endnode = bfs();
    fout<<viz[endnode];
    return 0;
}