1 #include<stdio.h>
 2 typedef struct{
 3     int array[50];
 4     int top,rear;
 5 }DoubleStack;
 6 void Create(DoubleStack*S)
 7 {
 8     int n,i;
 9     scanf("%d",&n);
10     for(i=0;i<n;i++)
11     scanf("%d",&S->array[i]);
12     S->top=0;
13     S->rear=n-1;
14 }
15 void Push(DoubleStack*S,int i,int e)
16 {
17     if(i==0)
18     {
19         if(S->top==0)return;
20         else {
21             S->top--;
22             S->array[S->top]=e;
23         };
24     }
25     else if(i==1)
26     {
27         if(S->rear==49)return;
28         else {
29             S->rear++;
30             S->array[S->rear]=e;
31             }
32     
33     
34 }
35 }
36 void Pop(DoubleStack*S,int i)
37 {
38     if(S->rear<S->top)return;
39     if(i==0)S->top++;
40     else if(i==1)S->rear--;
41 }
42 void Order(DoubleStack*S)
43 {
44     for(int i=S->top;i<=S->rear;i++)
45         printf("%d ",S->array[i]);
46 }
47 int main()
48 {
49     DoubleStack S;
50     int i1,i2,e;
51     Create(&S);
52     scanf("%d %d",&i1,&e);
53     Push(&S,i1,e);
54     Order(&S);
55     scanf("%d",&i2);
56     Pop(&S,i2);
57     Order(&S);
58     return 0;
59 }