Pagini recente » Cod sursa (job #977753) | Cod sursa (job #1330926) | Cod sursa (job #272557) | Cod sursa (job #3141131) | Cod sursa (job #2822625)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("zvon.in");
ofstream fout("zvon.out");
void dfs(vector<vector<int>>& G, vector<int>& fintime, int x)
{
for ( int a : G[x] )
dfs(G, fintime, a);
int niv = 1;
sort(G[x].begin(), G[x].end(), [&fintime](int a, int b){return (fintime[a] > fintime[b]);});
for ( int a : G[x] )
{
fintime[x] = max(fintime[x], fintime[a] + niv);
niv++;
}
}
void solve()
{
vector<vector<int>> G;
vector<int> fintime;
int n, a, b;
fin >> n;
G.resize(n + 5);
fintime.resize(n + 5);
for ( int i = 1; i < n; i++ )
{
fin >> a >> b;
G[a].push_back(b);
}
dfs(G, fintime, 1);
fout << fintime[1] << "\n";
}
int main()
{
int t;
fin >> t;
while ( t-- )
solve();
}