Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int N = 1e5 + 2;
- struct com{
- bool operator () (const int& x, const int& y) const{
- return x > y;
- }
- };
- heap <int> s;
- heap <int, vector<int>, com> p;
- string v;
- void Enter(){
- cin >> v;
- }
- void solve(){
- if(v == "median"){
- if( ((int)s.size() + (int)p.size()) & 1){
- if( ((int)s.size()) < (int)p.size())
- cout << p.top() << "\n";
- else
- cout << s.top() << "\n";
- }
- else{
- cout << s.top() << " " << p.top() << "\n";
- }
- }
- else{
- int i; cin >> i;
- if(s.size() && i < s.top())
- s.push(i);
- elif(p.size() && i > p.top())
- p.push(i);
- else{
- if(s.size() > p.size())
- p.push(i);
- else
- s.push(i);
- }
- if(((int)s.size() - (int)p.size()) > 1){
- int v = s.top();
- s.pop();
- p.push(v);
- }
- if(((int)p.size() - (int)s.size()) > 1){
- int v = p.top();
- p.pop();
- s.push(v);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement