Pagini recente » Cod sursa (job #266061) | Cod sursa (job #822371) | Cod sursa (job #664364) | Cod sursa (job #1843798) | Cod sursa (job #2474268)
#include <bits/stdc++.h>
using namespace std;
ifstream in("zvon.in");
ofstream out("zvon.out");
const int Nmax = 100000;
vector <int> G[Nmax+5];
queue <int> Q;
int N, T, d[Nmax+5];
void BFS(int Node) {
Q.push(Node);
d[Node] = 0;
int dmax = 0, nr=0;
while (!Q.empty()) {
int Nod = Q.front();
for (int i = 0; i < G[Nod].size(); i++) {
int Vecin = G[Nod][i];
d[Vecin] = d[Nod] + 1;
Q.push(Vecin);
if (d[Vecin] > dmax) {
dmax = d[Vecin];
nr=1;
}
else
if(d[Vecin] == dmax)
nr++;
}
Q.pop();
}
out << dmax + nr/2 << '\n';
}
int main () {
in >> T;
for (int i = 0; i < T; i++) {
in >> N;
for (int i = 0, x, y; i < N-1; i++) {
in >> x >> y;
G[x].push_back(y);
}
BFS(1);
for (int i = 1; i <= N; i++)
G[i].clear();
}
return 0;
}