vector<int> func(vector<int> &arr) { priority_queue<int> small; //- priority_queue<int> big; int m = arr.size(); vector<int> res; for (int i = 1; i <= m; i++) { if (small.size() == 0 || -arr[i - 1] < small.top()) { small.push(-arr[i - 1]); } else{ big.push(arr[i - 1]); } if (small.size()>big.size() + 1) { int e = small.top(); small.pop(); big.push(-e); } else if (big.size()>small.size() + 1){ int e = big.top(); big.pop(); small.push(-e); } if (i % 2 == 1){ if (small.size() > big.size())res.push_back(-small.top()); else if (big.size()>small.size())res.push_back(big.top()); } } return res; }