Pagini recente » Cod sursa (job #1246113) | Cod sursa (job #571816) | Cod sursa (job #1740814) | Cod sursa (job #1597582) | Cod sursa (job #3298846)
#include <bits/stdc++.h>
using namespace std;
ifstream fcin("zvon.in");
ofstream fcout("zvon.out");
typedef long long ll;
const int N = 1e5 + 5;
vector<vector<int>> v(N);
vector<int> s;
queue<int> q;
int t, n, a, b, d[N];
void BFS(int nod)
{
q.push(nod);
while (!q.empty())
{
s.push_back(q.front());
for (int e : v[q.front()])
q.push(e);
q.pop();
}
}
bool comp(int x, int y)
{
return d[x] < d[y];
}
int main()
{
fcin >> t;
while (t--)
{
fcin >> n;
for (int i = 1; i <= n; i++)
{
v[i].clear();
d[i] = 0;
}
for (int i = 1; i < n; i++)
{
fcin >> a >> b;
v[a].push_back(b);
}
s.clear();
BFS(1);
reverse(s.begin(), s.end());
for (int e : s)
{
sort(v[e].begin(), v[e].end(), comp);
reverse(v[e].begin(), v[e].end());
int maxx = 0;
for (int i = 0; i < v[e].size(); i++)
{
// cout << e << ' ' << i << ' ' << v[e][i] << ' ' << d[v[e][i]] << endl;
maxx = max(maxx, d[v[e][i]] + i + 1);
}
d[e] = maxx;
}
// for (int i = 1; i <= n; i++)
// cout << d[i] << ' ';
// cout << endl;
fcout << d[1] << '\n';
}
fcout.close();
fcin.close();
return 0;
}