Cod sursa(job #2782166)

Utilizator Alex_tz307Lorintz Alexandru Alex_tz307 Data 11 octombrie 2021 19:07:02
Problema Interclasari Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("interclasari.in");
ofstream fout("interclasari.out");

const int MAXK = 20;
int len[MAXK];
vector<int> a[MAXK];

void test_case() {
  int K;
  fin >> K;
  priority_queue<tuple<int, int, int>, vector<tuple<int, int, int>>, greater<tuple<int, int, int>>> pq;
  int sum = 0;
  for (int i = 0; i < K; ++i) {
    fin >> len[i];
    sum += len[i];
    if (len[i] > 0) {
      a[i].resize(len[i]);
      for (int &it : a[i]) {
        fin >> it;
      }
      pq.emplace(a[i][0], i, 0);
    }
  }
  fout << sum << '\n';
  while (!pq.empty()) {
    int val, index, pos;
    tie(val, index, pos) = pq.top();
    pq.pop();
    fout << val << ' ';
    if (pos + 1 < len[index]) {
      pq.emplace(a[index][pos + 1], index, pos + 1);
    }
  }
  fout << '\n';
}

int main() {
  int t = 1;
  for (int tc = 1; tc <= t; ++tc) {
    test_case();
  }
  fin.close();
  fout.close();
  return 0;
}