Cod sursa(job #2247060)

Utilizator AlexPascu007Pascu Ionut Alexandru AlexPascu007 Data 27 septembrie 2018 20:51:28
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>
#include <vector>
#define DIM 100005
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
int n,m,v[DIM],c[DIM],r,k,cc,i,j,cnt,l[DIM],maxim=0;
bool ok=false;
vector<int> L[DIM];
int bfs(int start) {
    v[start]=1;
    c[1]=start;
    int p=1,u=1;
    while (p<=u) {
        int nod=c[p];
        for (i=0;i<L[nod].size();i++) {
            int vecin=L[nod][i];
            if (v[vecin]==0) {
                c[++u]=vecin;
                v[vecin]=1;
                l[vecin]=1+l[nod];
            }
        }
        p++;
    }
    maxim=l[c[u]];
    return c[u];
}
int main() {
    fin>>n;
    for (k=1;k<n;k++) {
        fin>>i>>j;
        L[i].push_back(j);
        L[j].push_back(i);
    }
    r=bfs(1);
    for (i=1;i<=n;i++)
        l[i]=v[i]=0;
	bfs(r);
	fout<<1+maxim;
}