Guest User

Untitled

a guest
Jun 21st, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. #include<iostream>
  2.  
  3. using namespace std;
  4.  
  5. class pr{
  6. int zdarzenie;
  7. string cos;
  8. public:
  9. int getz(){return zdarzenie;}
  10. string getc(){return cos;}
  11.  
  12. void setz(int z){zdarzenie=z;}
  13. void setc(string c){cos=c;}
  14.  
  15. //void operator=(const pr &n){
  16. //this->zdarzenie=n.zdarzenie;
  17. //this->cos=n.cos;
  18. //}
  19.  
  20. };
  21.  
  22.  
  23. pr tymypy;
  24. int l;
  25.  
  26. pr tablica[1000000];
  27. void zeruj(){
  28. for(int i=0;i<1000000;i++) tablica[i].setz(1000000);
  29. }
  30. bool pusta;
  31. int licznik;
  32.  
  33. int pomo;
  34. int lewy,prawy;
  35. void usun(){
  36. if(!pusta){
  37. tablica[0]=tablica[licznik-1];
  38. tablica[licznik-1].setz(1000000);
  39. l=0;
  40. while(l<licznik&&(tablica[l].getz()>tablica[l*2+1].getz()||tablica[l].getz()>tablica[l*2+2].getz())){
  41. lewy=l*2+1;
  42. prawy=l*2+2;
  43. if(tablica[l].getz()>tablica[lewy].getz()&&tablica[l].getz()>tablica[prawy].getz()){
  44. if(tablica[lewy].getz()<tablica[prawy].getz()){
  45. tymypy=tablica[l];
  46. tablica[l]=tablica[lewy];
  47. tablica[lewy]=tymypy;
  48. l=lewy;
  49. }
  50. else {
  51. tymypy=tablica[l];
  52. tablica[l]=tablica[prawy];
  53. tablica[prawy]=tymypy;
  54. l=prawy;
  55. }
  56. }
  57. else{
  58. if(tablica[l].getz()>tablica[lewy].getz()){
  59. tymypy=tablica[l];
  60. tablica[l]=tablica[lewy];
  61. tablica[lewy]=tymypy;
  62. l=lewy;}
  63. else{
  64. tymypy=tablica[l];
  65. tablica[l]=tablica[prawy];
  66. tablica[prawy]=tymypy;
  67. l=prawy;}
  68. }
  69. }
  70. licznik--;
  71. if(licznik==0){
  72. pusta=true;
  73. }
  74.  
  75.  
  76. }
  77. }
  78.  
  79. void dodaj(pr &dodane){
  80. if (pusta){
  81. tablica[0]=dodane;
  82. pusta=false;
  83. licznik=1;}
  84. else {
  85. tablica[licznik]=dodane;
  86. l=licznik;
  87.  
  88. while(tablica[(l-1)/2].getz()>tablica[l].getz()&&(l!=0)){
  89. pomo=(l-1)/2;
  90. tymypy=tablica[l];
  91. tablica[l]=tablica[pomo];
  92. tablica[pomo]=tymypy;
  93. l=pomo;
  94. }
  95. licznik++;}
  96. }
  97.  
  98. int main(){
  99. zeruj();
  100. int n;
  101. cin>>n;
  102. int tmp;
  103. string cosiedzieje,pustystring;
  104. pr temp;
  105. pusta=true;
  106. for(int i=0;i<n;i++)
  107. {
  108. cin>>tmp;
  109. switch(tmp){
  110. case 1:{
  111. getline(cin,pustystring);
  112. getline(cin,cosiedzieje);
  113. cin>>tmp;
  114. temp.setz(tmp);
  115. temp.setc(cosiedzieje);
  116. dodaj(temp);
  117. pusta=false;
  118. break;}
  119. case 2:{
  120. if(!pusta){cout<<tablica[0].getc()<<endl;
  121. usun();
  122. }
  123. break;}
  124. case 3:{cout<<pusta<<endl;
  125. break;}
  126.  
  127. }
  128. }
  129.  
  130.  
  131. return 0;}
Add Comment
Please, Sign In to add comment