Cod sursa(job #1123997)

Utilizator traian.vidrascutraian vidrascu traian.vidrascu Data 26 februarie 2014 10:52:25
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

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

vector <int> gr[100005];
int n,m,x,y,max1,dis[100005],no;
void dfs (int p)
{
  int i;
  for(i=0;i<gr[p].size();i++)
      {
        if(dis[p]+1<dis[gr[p][i]])
          {
            dis[gr[p][i]]=dis[p]+1;
            if(dis[gr[p][i]]>max1)
                {
                  max1=dis[gr[p][i]];
                  no=gr[p][i];
                }
            dfs(gr[p][i]);
          }
      }
}
int main ()
{
  int i;
  f>>n;
  for(i=1;i<=n-1;i++)
    {
      f>>x>>y;
      gr[x].push_back(y);
      gr[y].push_back(x);
    }
    max1=0;
    for(i=1;i<=n;i++)
      dis[i]=100005;
     dis[1]=0;
  dfs(1);
  for(i=1;i<=n;i++)
    dis[i]=100005;
    dis[no]=1;
  dfs(no);
  g<<max1;

}