fork download
  1. #include <iostream>
  2. #include <string.h>
  3. #include <iomanip>
  4. #include <cmath>
  5. #include <algorithm>
  6. #include <set>
  7. #include <map>
  8. #include <queue>
  9. #include <cstdio>
  10. #include <cstring>
  11. #include <stack>
  12. #include <fstream>
  13.  
  14. using namespace std;
  15.  
  16. #define MOD 1000000007
  17. #define _USE_MATH_DEFINES
  18.  
  19. string sol[1000000];
  20.  
  21. long long int value[1000000];
  22.  
  23. int main()
  24. {
  25. // freopen("input.txt","r",stdin);
  26. // freopen("output.txt","w",stdout);
  27. ios_base::sync_with_stdio(false);
  28. cin.tie(0);
  29. long long int n,flag = 0;
  30. multiset<long long int>m;
  31. cin>>n;
  32. string temp;
  33. long long int tempval;
  34. long long int size = 0;
  35. for(long long int i=0;i<n;i++)
  36. {
  37. cin>>temp;
  38. if(temp.compare("removeMin")!=0)
  39. cin>>tempval;
  40. if(temp.compare("insert")==0)
  41. {
  42. sol[size] = temp;
  43. value[size] = tempval;
  44. m.insert(tempval);
  45. size++;
  46. }
  47. else if(temp.compare("getMin")==0)
  48. {
  49. if(m.size()!=0)
  50. {
  51. if(*(m.begin())!=tempval)
  52. {
  53. while((*(m.begin()))<tempval)
  54. {
  55. sol[size]="removeMin";
  56. size++;
  57. m.erase(m.begin());
  58. if(m.size()<=0)
  59. break;
  60. }
  61. sol[size] = "insert";
  62. value[size] = tempval;
  63. size++;
  64. m.insert(tempval);
  65. sol[size] = "getMin";
  66. value[size] = tempval;
  67. size++;
  68. }
  69. else
  70. {
  71. sol[size] = "getMin";
  72. value[size] = tempval;
  73. size++;
  74. }
  75. }
  76. else
  77. {
  78. sol[size] = "insert";
  79. value[size] = tempval;
  80. size++;
  81. m.insert(tempval);
  82. sol[size] = "getMin";
  83. value[size] = tempval;
  84. size++;
  85. }
  86. }
  87. else if(temp.compare("removeMin")==0)
  88. {
  89.  
  90. if(m.size()!=0)
  91. {
  92. m.erase((m.begin()));
  93. sol[size]="removeMin";
  94. size++;
  95. }
  96. else
  97. {
  98. sol[size] = "insert";
  99. value[size] = 1;
  100. size++;
  101. sol[size]="removeMin";
  102. size++;
  103. }
  104. }
  105. }
  106. cout<<size<<endl;
  107. for(long long int i=0;i<size;i++)
  108. {
  109. if(sol[i].compare("removeMin")==0)
  110. {
  111. cout<<sol[i]<<endl;
  112. }
  113. else
  114. cout<<sol[i]<<" "<<value[i]<<endl;
  115. }
  116. return 0;
  117. }
Success #stdin #stdout 0s 15128KB
stdin
4
insert 1
insert 1
removeMin
getMin 2
stdout
6
insert 1
insert 1
removeMin
removeMin
insert 2
getMin 2