Cod sursa(job #2777479)

Utilizator iancupoppPopp Iancu Alexandru iancupopp Data 23 septembrie 2021 15:01:39
Problema Zvon Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

const int N = 1e5 + 5;

vector<int> fii[N];
int dp[N];

bool cmp(int x, int y) {
  return dp[x] > dp[y];
}

void dfs(int nod) {
  dp[nod] = 0;
  for (auto sub : fii[nod])
    dfs(sub);
  sort(fii[nod].begin(), fii[nod].end(), cmp);
  int i = 1;
  for (auto sub : fii[nod]) {
    dp[nod] = max(dp[nod], i + dp[sub]);
    ++i;
  }
}

int main() {
  ifstream cin("zvon.in");
  ofstream cout("zvon.out");
  int t;
  cin >> t;
  while (t--) {
    int n;
    cin >> n;
    for (int i = 1; i <= n; ++i)
      fii[i].clear();
    for (int i = 0; i < n - 1; ++i) {
      int x, y;
      cin >> x >> y;
      fii[x].push_back(y);
    }
    dfs(1);
    cout << dp[1] << "\n";
  }
  cin.close();
  cout.close();
  return 0;
}