Pagini recente » Cod sursa (job #795080) | oji-2014-11-12 | Cod sursa (job #1266058) | Cod sursa (job #1260270) | Cod sursa (job #2766924)
#include <bits/stdc++.h>
using namespace std;
ifstream in("interclasari.in");
ofstream out("interclasari.out");
int k;
vector<int> v[21];
int main() {
in >> k;
set<tuple<int, int, int>> s;
int sum = 0;
for (int i = 1; i <= k; i++) {
int l;
in >> l;
sum += l;
v[i].resize(l);
for (int j = 0; j < l; j++) {
in >> v[i][j];
}
if (l > 0) {
s.insert(make_tuple(v[i][0], 0, i));
}
}
out << sum << "\n";
while ((int)s.size() > 0) {
tuple<int, int, int> top = *s.begin();
s.erase(top);
out << get<0>(top) << " ";
int i = get<1>(top), ord = get<2>(top);
if (i != v[ord].size() - 1) {
s.insert(make_tuple(v[ord][i + 1], i + 1, ord));
}
}
return 0;
}