Cod sursa(job #2498144)

Utilizator Briana_NeaguNeagu Briana Briana_Neagu Data 23 noiembrie 2019 15:57:03
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("darb.in");
ofstream g("darb.out");
const int nmax = 100005;

bool fv[nmax];
int dis[nmax];
vector <int> vec[nmax];

void dfs(int nod, int &ans)
{
    fv[nod] = 1;
    for (auto el : vec[nod])
        if (!fv[el])
        {
            dis[el] = dis[nod] + 1;
            if (dis[ans] < dis[el])
                ans = el;
            dfs(el, ans);
        }
}

int main()
{
  int n;
  f >> n;
  for (int i = 1; i < n; ++ i)
  {
      int x, y;
      f >> x >> y;
      vec[x].push_back(y);
      vec[y].push_back(x);
  }
  int ans = 0;
  dfs(1, ans);
  memset(fv, 0, sizeof(fv));
  int firstNode = ans;
  dis[firstNode] = 0;
  ans = 0;
  dfs(firstNode, ans);
  g << dis[ans] + 1;
}