Cod sursa(job #2799352)

Utilizator bostanlucastefanBostan Luca-Stefan bostanlucastefan Data 12 noiembrie 2021 23:36:06
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>
#include <vector>
#include <queue>
#define pb push_back

using namespace std;
using vi=vector<int>;
using qi=queue<int>;
using vvi=vector<vi>;

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

const int N=1e5+2;

int n,x,y,k,maxi,i;
qi q; vi d; vvi v;

void bfs(int now)
{
    d[now]=1;
    q.push(now);
    while(!q.empty())
    {
        now=q.front(); q.pop();
        for(auto x:v[now])
            if(!d[x])
                d[x]=d[now]+1, q.push(x), k=x;
    }
}

int main()
{
    fin>>n;
    d=vi(n+1);
    v=vvi(n+1);
    for(i=1; i<n; i++)
    {
        fin>>x>>y;
        v[x].pb(y);
        v[y].pb(x);
    }

    bfs(1);
    for(i=1; i<=n; i++)
        d[i]=0;
    bfs(k);

    for(i=1; i<=n; i++)
        maxi=max(maxi,d[i]);
    fout<<maxi<<'\n';
}