fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef pair<int, pair<int, int> > ppi;
  4. int main() {
  5.  
  6. int k =0 , n=0;
  7. cin>>k;
  8. cin>>n;
  9. vector<vector<int>> inputv;
  10. for(int i =0;i<k ;i++){
  11.  
  12. //int n =0;
  13.  
  14. vector<int> input;
  15. for(int i =0;i<n;i++){
  16.  
  17. int x;
  18. cin>>x;
  19. input.push_back(x);
  20. }
  21. inputv.push_back(input);
  22. }
  23.  
  24. /* for(int i =0;i<inputv.size();i++){
  25. for(int k =0 ; k <inputv[i].size(); k++){
  26. cout<<inputv[i][k]<<" "<<endl;
  27. }
  28. }*/
  29. //now finding the Kth Largest Elemnt
  30.  
  31. priority_queue<ppi, vector<ppi>, greater<ppi> > pq;
  32.  
  33. for (int i = 0; i < inputv.size(); i++)
  34. pq.push(make_pair(i ,make_pair(0 , inputv[i][0])));
  35.  
  36. while(!pq.empty()){
  37.  
  38. ppi temp = pq.top();
  39. pq.pop();
  40. int i = temp.first;
  41. int j = temp.second.first;
  42. int elem = temp.second.second;
  43. cout<<elem<<" ";
  44. }
  45. // pq.push(make_pair(1 ,make_pair(0 , inputv[1][0])));
  46. // pq.push(make_pair(2 ,make_pair(0 , inputv[2][0])));
  47. /* vector<int> result;
  48. while(!pq.empty()){
  49.  
  50. ppi temp = pq.top();
  51. pq.pop();
  52. int i = temp.first;
  53. int j = temp.second.first;
  54. int elem = temp.second.second;
  55. cout<<elem<<" ";
  56. result.push_back(elem);
  57.  
  58. if(j+1 < inputv[i].size())
  59. pq.push(make_pair(i ,make_pair(j+1 , inputv[i][j+1])));
  60.  
  61. }
  62.  
  63. //for(int i =0;i<result.size();i++)
  64. // cout<<result[i]<<" ";*/
  65.  
  66. return 0;
  67.  
  68. }
Success #stdin #stdout 0s 15240KB
stdin
3 4
1 3 5 7
2 4 6 8
0 9 10 11
stdout
1 2 0