Cod sursa(job #2776861)

Utilizator MarcvsHdrMihai Leonte MarcvsHdr Data 21 septembrie 2021 13:35:05
Problema Zvon Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <algorithm>
#include <fstream>
#include <iostream>
#include <vector>

int df(int node, std::vector<std::vector<int>>& v) {
  if (v[node].empty()) return 0;
  std::vector<int> times;
  for (int neigh : v[node]) times.push_back(df(neigh, v));
  std::sort(times.begin(), times.end());
  int sol = times.back();
  for (int i = times.size() - 1; i >= 0; --i) {
    if (sol < times[i] + times.size() - i) sol = times[i] + times.size() - i;
  }

  return sol;
}

int main()
{
  std::ifstream in("zvon.in");
  std::ofstream out("zvon.out");

  int t;
  in >> t;
  for (int test = 1; test <= t; ++test) {
    int n;
    in >> n;
    std::vector<std::vector<int>> v(n + 1);
    for (int i = 1; i <= n - 1; ++i) {
      int a, b;
      in >> a >> b;
      v[a].push_back(b);
    }

    out << df(1, v) << std::endl;
  }

  return 0;
}