Cod sursa(job #1928748)

Utilizator danstefanDamian Dan Stefan danstefan Data 16 martie 2017 17:53:59
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>
using namespace std;
int m,i,x,y,ans[100010],ult;
queue<int>q;
vector<int>v[100010];
bool ap[100010];
void bfs(int nod)
{
    q.push(nod);
    ans[nod]=1;
    while(!q.empty())
    {
        x=q.front();
        q.pop();
        for(i=0; i<v[x].size(); ++i)
            if(!ap[v[x][i]])q.push(v[x][i]),ap[v[x][i]]=true,ult=v[x][i],ans[v[x][i]]=ans[x]+1;
        }
        for(i=1; i<=m; ++i)ap[i]=false;
}
int main()
{
    ifstream f ("darb.in");
    ofstream g ("darb.out");
    f>>m;
    for(i=1; i<=m; ++i)
    {
        f>>x>>y;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    bfs(1);
    bfs(ult);
    g<<ans[ult]<<'\n';
    return 0;}