Advertisement
Kali_prasad

Untitled

May 14th, 2022
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.70 KB | None | 0 0
  1. #pragma GCC optimize ("O3")
  2. #pragma GCC target ("sse4")
  3.  
  4. #include <bits/stdc++.h>
  5. using namespace std;
  6.  
  7. typedef long long ll;
  8. typedef pair<int, int> pii;
  9. typedef pair<string,int> psi;
  10. typedef unordered_map<int,int> mii;
  11. typedef unordered_map<long long,long long> mll;
  12. typedef unordered_map<string,int> msi;
  13. typedef unordered_map<char,int> mci;
  14. typedef unordered_set<int> si;
  15. typedef unordered_set<long long> sll;
  16. typedef unordered_set<string> ss;
  17. typedef unordered_set<char> sc;
  18. typedef map<int,int> ormii;
  19. typedef map<long long,long long> ormll;
  20. typedef map<string,int> ormsi;
  21. typedef map<char,int> ormci;
  22. typedef set<int> orsi;
  23. typedef set<long long> orsll;
  24. typedef set<string> orss;
  25. typedef set<char> orsc;
  26. typedef vector<int> vi;
  27. typedef vector<string> vs;
  28. typedef vector<char> vc;
  29. typedef vector<ll> vll;
  30. typedef vector<vector<int>> vvi;
  31. typedef vector<vector<string>> vvs;
  32. typedef vector<vector<ll>> vvll;
  33.  
  34. #define FOR(i, a, b) for (auto i=a; i<=(b); i++)
  35. #define FORd(i,b,a) for (int i =b; i >= a; i--)
  36. #define sortinc(v)  sort(v.begin(),v.end())
  37. #define sortdec(v)  sort(v.rbegin(),v.rend())
  38. #define sz(x) (int)(x).size()
  39. #define mp make_pair
  40. #define pb push_back
  41. #define pob pop_back
  42. #define pf push_front
  43. #define pof pop_front
  44. #define fi first
  45. #define se second
  46. #define ins insert
  47.  
  48. const int MOD = 1000000007;
  49. //type functions here
  50. class minHeap
  51. {
  52.     public:
  53.     vi v;
  54.     void getMin()
  55.     {
  56.       if(sz(v)==0) cout<<"Empty"<<endl;
  57.       else cout<<v[0]<<endl;
  58.     }
  59.     void insert(int data)
  60.     {
  61.         v.pb(data);
  62.         int i=sz(v)-1;
  63.         int parent=(i-1)/2;
  64.         while(parent>(-1))
  65.         {
  66.             if(v[parent]>v[i]){swap(v[i],v[parent]);i=parent;parent=(i-1)/2;}
  67.             else break;
  68.         }
  69.     }
  70.     void delMin()
  71.     {
  72.        if(sz(v)<=1) v={};
  73.         else{
  74.         v[0]=v[sz(v)-1];
  75.         v.pop_back();
  76.         int i=0;
  77.         int LC=2*i+1;
  78.         int RC=2*i+2;
  79.         int sizee=sz(v);
  80.         while(RC<sizee||LC<sizee)
  81.         {
  82.             int child=LC;
  83.             if(RC<sizee) child=(v[LC]<=v[RC])?LC:RC;
  84.             if(v[i]>v[child]){swap(v[i],v[child]);i=child;LC=2*i+1;RC=2*i+2;}
  85.             else break;
  86.         }
  87.        
  88.        
  89.        
  90.        
  91.         }
  92.     }
  93.    
  94. };
  95.  
  96.  
  97. int main() {
  98.     ios_base::sync_with_stdio(false);
  99.     cin.tie(NULL);
  100.    minHeap m;
  101.     int tc=1;
  102.     cin>>tc;
  103.     FOR(w,1,tc)
  104.     {
  105.         string s;
  106.         cin>>s;
  107.         char op=s[0];
  108.         switch(op)
  109.         {
  110.             case 'i':{int temp;cin>>temp;m.insert(temp);};break;
  111.             case 'g':m.getMin();break;
  112.             case 'd':m.delMin();break;
  113.         }
  114.     }
  115.     return 0;
  116. }
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement