class MinStack {
public:
stack<int> ele;
stack<int> minStack;
void push(int x) {
int minVal = x;
if(minStack.empty() == false)
minVal = min(x, minStack.top());
ele.push(x);
if(minVal == x)
minStack.push(minVal);
}
void pop() {
if(false == ele.empty())
{
if(ele.top() == minStack.top())
minStack.pop();
ele.pop();
}
}
int top() {
return ele.top();
}
int getMin() {
return minStack.top();
}
};
public:
stack<int> ele;
stack<int> minStack;
void push(int x) {
int minVal = x;
if(minStack.empty() == false)
minVal = min(x, minStack.top());
ele.push(x);
if(minVal == x)
minStack.push(minVal);
}
void pop() {
if(false == ele.empty())
{
if(ele.top() == minStack.top())
minStack.pop();
ele.pop();
}
}
int top() {
return ele.top();
}
int getMin() {
return minStack.top();
}
};