Cod sursa(job #2207128)

Utilizator AnduRazvanMindrescu Andu AnduRazvan Data 24 mai 2018 22:38:41
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
struct nod
{ int info;
  nod *urm;
} *g[100001];
void Addelem(nod *&prim,int info)
{ nod *q=new nod;
  q->info=info;
  q->urm=prim;
  prim=q;
}
int viz[100001],nivel,maxi,nodmaxim;
void DFS(int x,int nivel)
{ viz[x]=1;
   if(nivel>maxi) {maxi=nivel;nodmaxim=x;}
   for(nod*p=g[x];p!=NULL;p=p->urm)
   {
      if(viz[p->info]==0)
      {
          DFS(p->info,nivel+1);

      }
   }
  viz[x]=0;
}
int main()
{
   int n;int i,x,y;
   fin>>n;
    for(i=1;i<=n-1;i++)
      {fin>>x>>y;
      Addelem(g[x],y);
      Addelem(g[y],x);
      }
     // fout<<g[1]->info;
    DFS(1,1);
   // cout<<maxi;
    maxi=0;
   // for(i=1;i<=n;i+)
    DFS(nodmaxim,1);
    fout<<maxi;
    return 0;
}