Cod sursa(job #2313372)

Utilizator Vlad3108Tir Vlad Ioan Vlad3108 Data 6 ianuarie 2019 19:10:17
Problema Diametrul unui arbore Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <bits/stdc++.h>
using namespace std;
#define LMAX 100001
vector<int> G[LMAX];
int dist[LMAX];
int n,last;
stack<int> ST;
void dfs(int k){
    memset(dist,0,sizeof(dist));
    dist[k]=1;
    ST.push(k);
    while(!ST.empty()){
        int x=ST.top();
        ST.pop();
        for(auto it : G[x])
            if(dist[it]==0){
                dist[it]=dist[x]+1;
                last=it;
                ST.push(it);
            }
    }
}
int main(){
    freopen("darb.in","r",stdin);
    freopen("darb.out","w",stdout);
    scanf("%d",&n);
    for(int i=1;i<=n;++i){
        int st,dr;
        scanf("%d %d",&st,&dr);
        G[st].push_back(dr);
        G[dr].push_back(st);
    }
    dfs(1);
    dfs(last);
    printf("%d\n",dist[last]);
	return 0;
}