class TwoStacks { vector<int> elements; int ptr1, ptr2, capacity; TwoStacks(int capacity) { for(int i=0; i < capacity; i++) { elements.push_back(-1); } ptr1 = 0; ptr2 = capacity-1; this->capacity = capacity; } bool push1(int value) { if(ptr1 <= ptr2) { elements[ptr1] = value; ptr1++; } else { return false; } } bool push2(int value) { if(ptr1 <= ptr2) { elements[ptr2] = value; ptr2--; } else { return false; } } int pop1() { if(ptr1-1 < 0) { return -1; } ptr1--; return elements[ptr1]; } int pop2() { if(ptr2+1 >= capacity) { return -1; } ptr2++; return elements[ptr2]; } };