#include<stdio.h>
#define deque_size 10000
int deque[ deque_size] = { 0 , } ;
int f= 0 ;
int b= deque_size- 1 ;
void push_front( ) ;
void push_back( ) ;
void pop_front( ) ;
void pop_back( ) ;
void size( ) ;
void empty( ) ;
void front( ) ;
void back( ) ;
int main( void ) {
int num_of_order;
char order[ 20 ] ;
scanf ( "%d" , & num_of_order
) ; int i;
for ( i= 0 ; i< num_of_order; i++ ) {
if ( strcmp ( order
, "push_front" ) == 0 ) push_front
( ) ; else if ( strcmp ( order
, "push_back" ) == 0 ) push_back
( ) ; else if ( strcmp ( order
, "pop_front" ) == 0 ) pop_front
( ) ; else if ( strcmp ( order
, "pop_back" ) == 0 ) pop_back
( ) ; else if ( strcmp ( order
, "size" ) == 0 ) size
( ) ; else if ( strcmp ( order
, "empty" ) == 0 ) empty
( ) ; else if ( strcmp ( order
, "front" ) == 0 ) front
( ) ; else if ( strcmp ( order
, "back" ) == 0 ) back
( ) ; }
return 0 ;
}
void push_front( ) {
int num;
deque[ f] = num;
f++;
}
void push_back( ) {
int num;
deque[ b] = num;
b--;
}
void pop_front( ) {
if ( deque[ f- 1 ] != 0 && f- 1 >= 0 ) {
deque[ f- 1 ] = 0 ;
f--;
}
else if ( deque[ deque_size- 1 ] != 0 ) {
printf ( "%d\n " , deque
[ deque_size
- 1 ] ) ; deque[ deque_size- 1 ] = 0 ;
b++;
}
else
}
void pop_back( ) {
if ( deque[ b+ 1 ] != 0 && b+ 1 < 10000 ) {
deque[ b+ 1 ] = 0 ;
b++;
}
else if ( deque[ 0 ] != 0 ) {
deque[ 0 ] = 0 ;
f--;
}
else
}
void size( ) {
int count= 0 ;
int i;
for ( i= 0 ; i< deque_size; i++ ) {
if ( deque[ i] != 0 )
count++;
}
}
void empty( ) {
if ( b- f== deque_size- 1 )
else
}
void front( ) {
if ( deque[ f- 1 ] != 0 && f- 1 >= 0 )
else if ( deque[ deque_size- 1 ] != 0 )
printf ( "%d\n " , deque
[ deque_size
- 1 ] ) ; else
}
void back( ) {
if ( deque[ b+ 1 ] != 0 && b+ 1 < 10000 )
else if ( deque[ 0 ] != 0 )
else
}
I2luY2x1ZGU8c3RkaW8uaD4KI2RlZmluZSBkZXF1ZV9zaXplIDEwMDAwCgppbnQgZGVxdWVbZGVxdWVfc2l6ZV09ezAsfTsKaW50IGY9MDsKaW50IGI9ZGVxdWVfc2l6ZS0xOwoKdm9pZCBwdXNoX2Zyb250KCk7CnZvaWQgcHVzaF9iYWNrKCk7CnZvaWQgcG9wX2Zyb250KCk7CnZvaWQgcG9wX2JhY2soKTsKdm9pZCBzaXplKCk7CnZvaWQgZW1wdHkoKTsKdm9pZCBmcm9udCgpOwp2b2lkIGJhY2soKTsKCmludCBtYWluKHZvaWQpewoJaW50IG51bV9vZl9vcmRlcjsKCWNoYXIgb3JkZXJbMjBdOwoJc2NhbmYoIiVkIiwgJm51bV9vZl9vcmRlcik7CglpbnQgaTsKCQoJZm9yKGk9MDsgaTxudW1fb2Zfb3JkZXI7IGkrKyl7CgkJc2NhbmYoIiVzIiwgb3JkZXIpOwoJCWlmKHN0cmNtcChvcmRlciwicHVzaF9mcm9udCIpID09IDApIHB1c2hfZnJvbnQoKTsKCQllbHNlIGlmKHN0cmNtcChvcmRlciwicHVzaF9iYWNrIikgPT0gMCkgcHVzaF9iYWNrKCk7CgkJZWxzZSBpZihzdHJjbXAob3JkZXIsInBvcF9mcm9udCIpID09IDApIHBvcF9mcm9udCgpOwoJCWVsc2UgaWYoc3RyY21wKG9yZGVyLCJwb3BfYmFjayIpID09IDApIHBvcF9iYWNrKCk7CgkJZWxzZSBpZihzdHJjbXAob3JkZXIsInNpemUiKSA9PSAwKSBzaXplKCk7CgkJZWxzZSBpZihzdHJjbXAob3JkZXIsImVtcHR5IikgPT0gMCkgZW1wdHkoKTsKCQllbHNlIGlmKHN0cmNtcChvcmRlciwiZnJvbnQiKSA9PSAwKSBmcm9udCgpOwoJCWVsc2UgaWYoc3RyY21wKG9yZGVyLCJiYWNrIikgPT0gMCkgYmFjaygpOwkKCX0KCgkJCglyZXR1cm4gMDsKfQoKdm9pZCBwdXNoX2Zyb250KCl7CglpbnQgbnVtOwoJc2NhbmYoIiVkIiwgJm51bSk7CglkZXF1ZVtmXSA9IG51bTsKCWYrKzsKfQp2b2lkIHB1c2hfYmFjaygpewoJaW50IG51bTsKCXNjYW5mKCIlZCIsICZudW0pOwoJZGVxdWVbYl0gPSBudW07CgliLS07Cn0Kdm9pZCBwb3BfZnJvbnQoKXsKCWlmKGRlcXVlW2YtMV0hPTAgJiYgZi0xPj0wKXsKCQlwcmludGYoIiVkXG4iLCBkZXF1ZVtmLTFdKTsKCQlkZXF1ZVtmLTFdPTA7CgkJZi0tOwoJfQoJZWxzZSBpZihkZXF1ZVtkZXF1ZV9zaXplLTFdIT0wKXsKCQlwcmludGYoIiVkXG4iLCBkZXF1ZVtkZXF1ZV9zaXplLTFdKTsKCQlkZXF1ZVtkZXF1ZV9zaXplLTFdPTA7CgkJYisrOwoJfQoJZWxzZQoJCXByaW50ZigiLTFcbiIpOwp9CnZvaWQgcG9wX2JhY2soKXsKCWlmKGRlcXVlW2IrMV0hPTAgJiYgYisxPDEwMDAwKXsKCQlwcmludGYoIiVkXG4iLCBkZXF1ZVtiKzFdKTsKCQlkZXF1ZVtiKzFdPTA7CgkJYisrOwoJfQoJZWxzZSBpZihkZXF1ZVswXSE9MCl7CgkJcHJpbnRmKCIlZFxuIiwgZGVxdWVbMF0pOwoJCWRlcXVlWzBdPTA7CgkJZi0tOwoJfQoJZWxzZQoJCXByaW50ZigiLTFcbiIpOwp9CnZvaWQgc2l6ZSgpewoJaW50IGNvdW50PTA7CglpbnQgaTsKCWZvcihpPTA7IGk8ZGVxdWVfc2l6ZTsgaSsrKXsKCQlpZihkZXF1ZVtpXSE9MCkKCQkJY291bnQrKzsKCX0KCXByaW50ZigiJWRcbiIsIGNvdW50KTsKfQp2b2lkIGVtcHR5KCl7CglpZihiLWY9PWRlcXVlX3NpemUtMSkKCQlwcmludGYoIjFcbiIpOwoJZWxzZQoJCXByaW50ZigiMFxuIik7Cn0Kdm9pZCBmcm9udCgpewoJaWYoZGVxdWVbZi0xXSE9MCAmJiBmLTE+PTApCgkJcHJpbnRmKCIlZFxuIiwgZGVxdWVbZi0xXSk7CgllbHNlIGlmKGRlcXVlW2RlcXVlX3NpemUtMV0hPTApCgkJcHJpbnRmKCIlZFxuIiwgZGVxdWVbZGVxdWVfc2l6ZS0xXSk7CgllbHNlCgkJcHJpbnRmKCItMVxuIik7Cn0Kdm9pZCBiYWNrKCl7CglpZihkZXF1ZVtiKzFdIT0wICYmIGIrMTwxMDAwMCkKCQlwcmludGYoIiVkXG4iLCBkZXF1ZVtiKzFdKTsKCWVsc2UgaWYoZGVxdWVbMF0hPTApCgkJcHJpbnRmKCIlZFxuIiwgZGVxdWVbMF0pOwoJZWxzZQoJCXByaW50ZigiLTFcbiIpOwoJCn0=
stdin
MjIKZnJvbnQKYmFjawpwb3BfZnJvbnQKcG9wX2JhY2sKcHVzaF9mcm9udCAxCmZyb250CnBvcF9iYWNrCnB1c2hfYmFjayAyCmJhY2sKcG9wX2Zyb250CnB1c2hfZnJvbnQgMTAKcHVzaF9mcm9udCAzMzMKZnJvbnQKYmFjawpwb3BfYmFjawpwb3BfYmFjawpwdXNoX2JhY2sgMjAKcHVzaF9iYWNrIDEyMzQKZnJvbnQKYmFjawpwb3BfYmFjawpwb3BfYmFjaw==
22
front
back
pop_front
pop_back
push_front 1
front
pop_back
push_back 2
back
pop_front
push_front 10
push_front 333
front
back
pop_back
pop_back
push_back 20
push_back 1234
front
back
pop_back
pop_back