Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- class pr{
- int zdarzenie;
- string cos;
- public:
- int getz(){return zdarzenie;}
- string getc(){return cos;}
- void setz(int z){zdarzenie=z;}
- void setc(string c){cos=c;}
- //void operator=(const pr &n){
- //this->zdarzenie=n.zdarzenie;
- //this->cos=n.cos;
- //}
- };
- pr tymypy;
- int l;
- pr tablica[1000000];
- void zeruj(){
- for(int i=0;i<1000000;i++) tablica[i].setz(1000000);
- }
- bool pusta;
- int licznik;
- int pomo;
- int lewy,prawy;
- void usun(){
- if(!pusta){
- tablica[0]=tablica[licznik-1];
- tablica[licznik-1].setz(1000000);
- l=0;
- while(l<licznik&&(tablica[l].getz()>tablica[l*2+1].getz()||tablica[l].getz()>tablica[l*2+2].getz())){
- lewy=l*2+1;
- prawy=l*2+2;
- if(tablica[l].getz()>tablica[lewy].getz()&&tablica[l].getz()>tablica[prawy].getz()){
- if(tablica[lewy].getz()<tablica[prawy].getz()){
- tymypy=tablica[l];
- tablica[l]=tablica[lewy];
- tablica[lewy]=tymypy;
- l=lewy;
- }
- else {
- tymypy=tablica[l];
- tablica[l]=tablica[prawy];
- tablica[prawy]=tymypy;
- l=prawy;
- }
- }
- else{
- if(tablica[l].getz()>tablica[lewy].getz()){
- tymypy=tablica[l];
- tablica[l]=tablica[lewy];
- tablica[lewy]=tymypy;
- l=lewy;}
- else{
- tymypy=tablica[l];
- tablica[l]=tablica[prawy];
- tablica[prawy]=tymypy;
- l=prawy;}
- }
- }
- licznik--;
- if(licznik==0){
- pusta=true;
- }
- }
- }
- void dodaj(pr &dodane){
- if (pusta){
- tablica[0]=dodane;
- pusta=false;
- licznik=1;}
- else {
- tablica[licznik]=dodane;
- l=licznik;
- while(tablica[(l-1)/2].getz()>tablica[l].getz()&&(l!=0)){
- pomo=(l-1)/2;
- tymypy=tablica[l];
- tablica[l]=tablica[pomo];
- tablica[pomo]=tymypy;
- l=pomo;
- }
- licznik++;}
- }
- int main(){
- zeruj();
- int n;
- cin>>n;
- int tmp;
- string cosiedzieje,pustystring;
- pr temp;
- pusta=true;
- for(int i=0;i<n;i++)
- {
- cin>>tmp;
- switch(tmp){
- case 1:{
- getline(cin,pustystring);
- getline(cin,cosiedzieje);
- cin>>tmp;
- temp.setz(tmp);
- temp.setc(cosiedzieje);
- dodaj(temp);
- pusta=false;
- break;}
- case 2:{
- if(!pusta){cout<<tablica[0].getc()<<endl;
- usun();
- }
- break;}
- case 3:{cout<<pusta<<endl;
- break;}
- }
- }
- return 0;}
Add Comment
Please, Sign In to add comment