Cod sursa(job #3252170)

Utilizator Bianca2507Negret Bianca Bianca2507 Data 28 octombrie 2024 19:10:16
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream cin("darb.in");
ofstream cout("darb.out");

int n,diametru,nr,maxi;
vector<int>l[100005];
void bfs(int start)
{
    int viz[100005]={0};
    queue<int>q;
    q.push(start);
    viz[start]=1;
    while(!q.empty())
    {
        int nod=q.front();
        maxi=max(maxi,viz[nod]);
        nr=nod;
        for(int i=0;i<l[nod].size();i++)
        {
            int vecin=l[nod][i];
            if(viz[vecin]==0)
            {
                viz[vecin]=viz[nod]+1;
                q.push(vecin);
            }
        }
        q.pop();
    }
}
int main()
{
    cin>>n;
    for(int i=1;i<=n-1;i++)
    {
        int a,b;
        cin>>a>>b;
        l[a].push_back(b);
        l[b].push_back(a);
    }
    bfs(1);
    bfs(nr);
    cout<<maxi;
    return 0;
}