Cod sursa(job #2263625)

Utilizator marcogoldPop Mihali Marco Silviu marcogold Data 18 octombrie 2018 22:02:21
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

ofstream fo("darb.out");
ifstream fi("darb.in");


int n,a,b,nodInceput,maxim=-10;
vector<int> vecini[100001];
bool vizitat[100001];

void curata()
{
    for(int i=1;i<=n;i++)
        vizitat[i]=false;
}

int DFS(int nod,int nivel)
{
      if(vizitat[nod]==false)
      {
          if(nivel>maxim)
          {
            maxim=nivel;
            nodInceput=nod;
          }
          vizitat[nod]=true;
          for(auto i:vecini[nod] )
          {
              DFS(i,nivel+1);

          }
      }
}

int main()
{
    fi>>n;

    for(int i=1;i<=n;i++)
    {
        fi>>a>>b;
        vecini[a].push_back(b);
        vecini[b].push_back(a);

    }

    DFS(1,1);
    curata();
    maxim=-10;
    DFS(nodInceput,1);

    fo<<maxim;

    fi.close();
    fo.close();
    return 0;
}