Cod sursa(job #1197340)

Utilizator alex_bucevschiBucevschi Alexandru alex_bucevschi Data 11 iunie 2014 19:01:03
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <cstdio>
#include <vector>
#include <cstring>
#define N 100010
using namespace std;
int n,i,x,y,g[N],d[N],sol,NOD,viz[N];
vector <int> v[N],Q;
void dfs(int nod,int dist)
{
    if(sol<dist)
    {
        NOD=nod;
        sol=dist;
    }
    for(vector<int>::iterator it=v[nod].begin();it!=v[nod].end();it++)
        if(!viz[*it])
        {
            viz[*it]=1;
            dfs(*it,dist+1);
        }
}
int main()
{
    freopen("darb.in","r",stdin);
    freopen("darb.out","w",stdout);
    scanf("%d",&n);
    for(i=1;i<n;i++)
    {
        scanf("%d%d",&x,&y);
        v[x].push_back(y);
        v[y].push_back(x);
    }
    viz[1]=1;
    dfs(1,1);
    sol=0;
    memset(viz,0,sizeof(viz));
    viz[NOD]=1;
    dfs(NOD,1);
    printf("%d\n",sol);
    return 0;
}