fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define pb push_back
  5. #define mk make_pair
  6. #define pi pair<int,int>
  7. #define pii pair< pi >
  8. string to_str(int n) {
  9. stringstream ss;
  10. ss << n;
  11. string str = ss.str();
  12. return str;
  13. }
  14.  
  15. multiset<int> s;
  16. vector<string> ans;
  17. string op, temp;
  18. int no,n;
  19. string g[3] = {"insert ", "removeMin ", "getMin "};
  20. int main() {
  21. ans.clear();
  22. s.clear();
  23. ios_base::sync_with_stdio(false);
  24. cin >> n;
  25. for(int i=0;i<n;i++) {
  26. cin >> op;
  27. if(op[0]!='r')
  28. cin >> no;
  29. if(op[0]=='i') {
  30. s.insert(no);
  31. ans.pb(g[0] + to_str(no));
  32. }
  33. else if(op[0]=='r') {
  34. if(s.empty()) {
  35. ans.pb(g[0]+ "1");
  36. s.insert(1);
  37. //temp = g[1];
  38. //ans.pb(temp);
  39. }
  40.  
  41. s.erase(s.begin());
  42. ans.pb(g[1]);
  43.  
  44. }
  45. else {
  46.  
  47.  
  48. while(!s.empty() && *(s.begin())<no) {
  49. s.erase(s.begin());
  50. ans.pb(g[1]);
  51. }
  52. if(s.empty() || *(s.begin())!=no) {
  53. s.insert(no);
  54. ans.pb(g[0] + to_str(no));
  55. //temp = g[2] + to_str(no);
  56. //ans.pb(temp);
  57. }
  58. ans.pb(g[2] + to_str(no));
  59.  
  60. }
  61.  
  62.  
  63. }
  64. cout << ans.size() << endl;
  65. for(int i=0;i<ans.size();i++) {
  66. cout << ans[i] << endl;
  67. }
  68. return 0;
  69.  
  70. }
Success #stdin #stdout 0s 3416KB
stdin
Standard input is empty
stdout
0