Cod sursa(job #1094094)

Utilizator mlupseLupse-Turpan Mircea mlupse Data 28 ianuarie 2014 21:38:18
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <cstdio>
#include<vector>
#include<cstring>
#define NMax 100005
using namespace std;
vector <int> G[NMax];
int T,N,M,S,Sol,SolN,use[NMax];
void DFS(int nod,int tt,int level)
{
vector <int> :: iterator it;
if(level>Sol)
{
    Sol=level;
    SolN=nod;
}
use[nod]=1;
for(it=G[nod].begin();it!=G[nod].end();it++)
    {
    if (!use[*it])
        DFS(*it,nod,level+1);
    }
}

int main()
{
freopen("darb.in","r",stdin);
freopen("darb.out","w",stdout);
int i,X,Y;

    scanf("%d",&N);
    for(i=1;i<N;i++)
    {
        scanf("%d %d",&X,&Y);
        G[X].push_back(Y);
        G[Y].push_back(X);
    }

    Sol=0;
    memset(use,0,sizeof(use));
    DFS(1,0,0);
    Sol=0;
    memset(use,0,sizeof(use));
    DFS(SolN,0,0);
    printf("%d\n",Sol+1);

return 0;
}