Cod sursa(job #1197756)

Utilizator hasmasandragosHasmasan Dragos hasmasandragos Data 13 iunie 2014 17:46:09
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
#include <vector>
#define Nmax 100005
using namespace std;

ifstream f("darb.in");
ofstream g("darb.out");

int last,n,i,x,y,pas=1,viz[Nmax],maxim;
vector <int> a[Nmax];

void dfs (int x)
{ int h;
  viz[x]=pas;
  if (viz[x]>maxim)
  {
   last=x;
   maxim=viz[x];
  }
  for (h=0;h<a[x].size();h++)
   {
       if (viz[a[x][h]]==0)
       {pas++;
        dfs(a[x][h]);
        pas--;
       }
   }
}

int main()
{
    f>>n;
    for (i=0;i<n;i++)
    {
        f>>x>>y;
        a[x].push_back(y);
        a[y].push_back(x);
    }
    dfs(1);
    for (i=1;i<=n;i++)
     viz[i]=0;
    maxim=0;
    dfs(last);
    g<<viz[last];
    return 0;
}