Advertisement
Guest User

Untitled

a guest
Apr 4th, 2020
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1. const int N = 1e5 + 2;
  2. struct com{
  3.     bool operator () (const int& x, const int& y) const{
  4.         return x > y;
  5.     }
  6. };
  7. heap <int> s;
  8. heap <int, vector<int>, com> p;
  9. string v;
  10.  
  11. void Enter(){
  12.     cin >> v;
  13. }
  14. void solve(){
  15.     if(v == "median"){
  16.         if( ((int)s.size() + (int)p.size()) & 1){
  17.             if( ((int)s.size()) < (int)p.size())
  18.                 cout << p.top() << "\n";
  19.             else
  20.                 cout << s.top() << "\n";
  21.         }
  22.         else{
  23.             cout << s.top() << " " << p.top() << "\n";
  24.         }
  25.     }
  26.     else{
  27.         int i; cin >> i;
  28.         if(s.size() && i < s.top())
  29.             s.push(i);
  30.         elif(p.size() && i > p.top())
  31.             p.push(i);
  32.         else{
  33.             if(s.size() > p.size())
  34.                 p.push(i);
  35.             else
  36.                 s.push(i);
  37.         }
  38.         if(((int)s.size() - (int)p.size()) > 1){
  39.             int v = s.top();
  40.             s.pop();
  41.             p.push(v);
  42.         }
  43.         if(((int)p.size() - (int)s.size()) > 1){
  44.             int v = p.top();
  45.             p.pop();
  46.             s.push(v);
  47.         }
  48.     }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement