Cod sursa(job #2246846)

Utilizator Raresr14Rosca Rares Raresr14 Data 27 septembrie 2018 17:06:41
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <fstream>
#include <vector>
#define DIM 100010
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
vector<int> L[DIM];
int c[DIM],f[DIM],i,n,r,l[DIM],maxim,j,sol,p,u;
int bfs(int start){
    p=1;
    u=1;
    c[1]=start;
    f[start]=1;
    while(p<=u){
        int nod=c[p];
        for(i=0;i<L[nod].size();i++)
            if(f[L[nod][i]]==0){
               f[L[nod][i]]=1;
               c[++u]=L[nod][i];
               l[L[nod][i]]=1+l[nod];
            }
        p++;
    }
    maxim=l[c[u]];
    return c[u];
}
int main(){
    fin>>n;
    while(fin>>i>>j){
        L[i].push_back(j);
        L[j].push_back(i);
    }
    r=bfs(1);
    for(i=1;i<=n;i++){
        f[i]=0;
        l[i]=0;
    }
    bfs(r);
    fout<<maxim+1;
    return 0;
}