Quick actions

cmd+k|ctrl+k

Navigation

Languages

streaming-median

Snippet info

Language

Cpp

Visibility

public

Author

vagabondtechie

Created

2018-12-11T14:05:46Z

Updated

2018-12-11T14:05:56Z

#include <bits/stdc++.h>
using namespace std;

int main() {
    priority_queue<int> maxHeap;
    priority_queue< int, vector<int>, greater<int> > minHeap;
    int i = 1, size = 11;
    while (i < size) {
        if (!maxHeap.empty() && i > maxHeap.top()) {
            minHeap.push(i);
        } else {
            maxHeap.push(i);
        }
        
        if (maxHeap.size() > minHeap.size() + 1) {
            minHeap.push(maxHeap.top()); maxHeap.pop();
        } else if (minHeap.size() > maxHeap.size() + 1) {
            maxHeap.push(minHeap.top()); minHeap.pop();
        }
        
        if (maxHeap.size() == minHeap.size()) {
            cout << ((maxHeap.top() + minHeap.top()) / 2.0) << endl;
        } else {
            cout << (maxHeap.size() > minHeap.size() ? maxHeap.top() : minHeap.top()) << endl;
        }
        i++;
    }
    
    
    return 0;
}
INFO