fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. class point{
  4. public:
  5. int x, y;
  6. point(int x__, int y__){
  7. x = x__;
  8. y = y__;
  9. }
  10. int gex(){
  11. return x;
  12. }
  13. int gey(){
  14. return y;
  15. }
  16. };
  17. class cmp{
  18. public:
  19. bool operator()(point a, point b){
  20. return a.x < b.x;
  21. }
  22. };
  23. int main() {
  24. int n, k;
  25. cin >> k >> n;
  26. int a[k][n];
  27. for(int i = 0; i < k; i++){
  28. for(int j = 0; j < n; j++){
  29. cin >> a[i][k];
  30. }
  31. }
  32. int arr[k * n];
  33. priority_queue< point, vector<point>, cmp > pq;
  34. vector<int> v(k, 1);
  35. for(int i = 0; i < k; i++){
  36. pq.push(point(a[i][0], i));
  37. }
  38. int i = 0;
  39. while(!pq.empty()){
  40. point p = pq.top();
  41. pq.pop();
  42. int x = p.x;
  43. int j = p.y;
  44. j;
  45. arr[i] = x;
  46. i++;
  47. if(v[j] < n){
  48. pq.push(point(a[j][v[j]], j));
  49. v[j]++;
  50. }
  51. }
  52. for(i = 0; i < k * n; i++){
  53. cout << arr[i] << " ";
  54. }
  55. cout << "\n";
  56. return 0;
  57. }
Success #stdin #stdout 0s 4316KB
stdin
1
4
1 2 3 4
4 5 6 7
7 8 9 0
12 2 4 89
stdout
531396992 4 174551391 21964