#include <functional> #include <future> #include <queue> #include <vector> class Middle { public: vector<int> getMiddle(vector<int> A, int n) { // write code here priority_queue<int> min_heap; priority_queue<int, vector<int>, greater<>> max_heap; vector<int> mid; for(int i=0;i<n;++i ){ if(min_heap.empty() || A[i] <= min_heap.top()){ min_heap.push(A[i]); }else{ max_heap.push(A[i]); } if(min_heap.size() < max_heap.size()){ min_heap.push( max_heap.top()); max_heap.pop(); } if(min_heap.size() > max_heap.size()+1){ max_heap.push(min_heap.top()); min_heap.pop(); } mid.emplace_back(min_heap.top()); } return mid; } };