Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<list>
- using namespace std;
- struct node{int z;node *prev;node *next;};
- typedef node *pnode;
- int main(){
- pnode head=NULL,tail,mid,el;
- int n,i,j,k=0;string w;
- cin>>n;
- for(i=0;i<n;i++){
- cin>>w;
- if(w=="add"){
- cin>>j;k++;
- el=new node;
- el->z=j;
- el->prev=NULL;
- el->next=NULL;
- if(head){
- el->prev=tail;
- tail->next=el;
- tail=el;
- if(k>2&&k%2==0)mid=mid->next;}
- else{head=el;tail=el;mid=el;}}
- else if(w=="take"){k--;
- el=tail->prev;
- el->next=NULL;
- delete(tail);
- tail=el;
- if(k>2&&k%2)mid=mid->prev;}
- else {
- tail->next=head;
- head=mid->next;
- mid->next=NULL;
- tail=mid;}}
- cout<<k<<endl;
- el=head;
- while(el){cout<<el->z<<' ';el=el->next;}
- return 0;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement