Cod sursa(job #2318943)

Utilizator HedeaMihneAHedea Mihnea HedeaMihneA Data 13 ianuarie 2019 19:04:44
Problema Diametrul unui arbore Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb

#include <fstream>
#include <vector>

using namespace std;

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

int n,i,j,p,u,m,f[100005],lG[100005],c[100005];
vector <int>L[100005];

int bfs(int a){
    p=1;
    u=1;
    c[p]=a;
    f[a]=1;
    while(p<=u){
        for(j=0;j<L[c[p]].size();j++){
            if(f[L[c[p]][j]]==0){
                c[u++]=L[c[p]][j];
                f[L[c[p]][j]]=1;
                lG[L[c[p]][j]]=lG[c[p]]+1;
            }
        }

        p++;
    }
    m=lG[c[u]];
    for(i=1;i<=n;i++){
        lG[i]=0;
        f[i]=0;
    }
    return c[u];
}


int main(){
    fin>>n;
    while(fin>>i>>j){
        L[i].push_back(j);
        L[j].push_back(i);
    }
    bfs(bfs(1));
    fout<<m+1;

    return 0;
}