Pagini recente » Cod sursa (job #73819) | Cod sursa (job #1475159) | Cod sursa (job #1350607) | Cod sursa (job #1954592) | Cod sursa (job #2249440)
#include <fstream>
#include <iostream>
#include <vector>
#include <queue>
#include <utility>
#include <cstring>
#include <algorithm>
using namespace std;
vector<int> angs[100010];
int angajati;
bool compar(int a, int b) {
return angs[b].size() < angs[a].size();
}
int main(int argc, char** argv) {
ifstream fi("zvon.in");
ofstream fo("zvon.out");
int teste;
int angajati;
fi >> teste;
for (int i = 0; i < teste; ++i) {
fi >> angajati;
if (angajati > 1) {
int x, y;
memset(angs, 0, sizeof(angs));
for (int j = 0; j < angajati - 1; ++j) {
fi >> x >> y;
angs[x - 1].push_back(y - 1);
}
queue< pair<int, int> > order;
for (int j = 0; j < angajati; j++) {
if (angs[j].size() > 1)
sort(angs[j].begin(), angs[j].end(), compar);
// cout <<j <<" : ";
// for (size_t k = 0; k < angs[j].size(); k++) {
// cout << angs[j][k] << " ";
// }
// cout << "\n";
}
// // //cout << "\n";
// order.push(make_pair(0, 0));
// int mm = 0;
// while (1) {
// pair<int, int> x = order.front();
// order.pop();
// if (x.second > mm)
// mm = x.second;
// for (unsigned int vec = 0; vec < angs[x.first].size(); vec++)
// order.push(make_pair(angs[x.first][vec], x.second + 1 + vec));
// if (order.empty()) {
// fo << mm << "\n";
// break;
// }
// }
} else {
fo << "0\n" << flush;
}
}
return 0;
}