Cod sursa(job #2195811)

Utilizator Diana-AndriescuAndriescu Diana Diana-Andriescu Data 17 aprilie 2018 13:39:37
Problema Diametrul unui arbore Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb

#include <fstream>
#include <vector>
#define NMAX 100000

using namespace std;

ifstream fin("darb.in");
ofstream fout("darb.out");

vector <int> G[NMAX];
int n;
int  diamax, poz;
int uz[NMAX];
void citire();
void dfs(int k, int diametru);

int main()
{
    citire();
 dfs(1, 1);

 dfs(poz, 1);
 fout<<diamax<<'\n';
 return 0;
}


void citire()
{int i, a, b;
fin>>n;
for (i=1; i<n; i++)
    {fin>>a>>b;
    G[a].push_back(b);
    G[b].push_back(a);
    uz[i]=0;
    }
}


void dfs(int k, int diametru)
{int i;
uz[k]=1;
     if (diametru>diamax)
         {diamax=diametru;
          poz=k;
         }
     for (i=0; i<G[k].size(); i++)
          if (uz[G[k][i]]==0)
              dfs(G[k][i], diametru+1);
}