class MyQueue {
private:
stack<int> inStack, outStack;
void in2out()
{
while (inStack.empty() != true)
{
outStack.push(inStack.top());
inStack.pop();
}
}
public:
MyQueue() {}
void push(int x)
{
inStack.push(x);
}
int pop()
{
if (outStack.empty())
{
in2out();
}
int x = outStack.top();
outStack.pop();
return x;
}
int peek()
{
if (outStack.empty())
{
in2out();
}
return outStack.top();
}
bool empty()
{
return inStack.empty() && outStack.empty();
}
};