fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. int main() {
  6. vector <int> halda(1);
  7. int n, i, p, t, j, x, v;
  8. cin>>n;
  9. for (i=0; i<n; i++){
  10. cin>>t>>x;
  11. if (t==0){
  12. halda [1]=halda [halda.size()-1];
  13. halda.resize (halda.size()-1);
  14. v=1;
  15. while (v<halda.size() && (halda[v]<halda[v*2] || halda [v]<halda [v*2+1])){
  16.  
  17.  
  18. if (halda [v]<halda [v*2] && halda [v*2]>halda[v*2+1]){
  19. if (v*2>halda.size()){
  20. break;
  21. }
  22. p=halda[v];
  23. halda [v]= halda [v*2];
  24. halda [v*2]=p;
  25. v=v*2;
  26. }
  27. else if (halda [v]<halda [v*2+1] && halda [v*2+1]>=halda [v*2]){
  28. if (v*2+1>halda.size()){
  29. break;
  30. }
  31. p=halda [v];
  32. halda [v]=halda [v*2+1];
  33. halda [v*2+1]=p;
  34. v=v*2+1;
  35. }
  36. }
  37.  
  38.  
  39. }
  40. else{
  41. halda.push_back(x);
  42. v=halda.size()-1;
  43. while (v>1 && (halda[v]>halda [v/2])){
  44. p=halda [v];
  45. halda [v]=halda [v/2];
  46. halda [v/2]=p;
  47. v=v/2;
  48. }
  49.  
  50. }
  51. if (halda.size()==1){
  52. cout<<"empty"<<endl;
  53. }
  54. else{
  55. cout<<halda [1]<<endl;
  56. }
  57.  
  58. }
  59. return 0;
  60. }
Success #stdin #stdout 0s 15240KB
stdin
12
1 5
1 8
1 -3
1 9
1 -4
1 5
0 0
0 0
0 0
0 0
0 0
0 0
stdout
5
8
8
9
9
9
8
5
5
-3
-4
empty