Giving wrong answe cant find the bug . anyone?


#1

stack s;
int m = INT_MAX;

MinStack::MinStack() {

}

void MinStack::push(int x) {
if(s.empty()){
m = x;
s.push(x);
}
else{
if(x<m){
s.push(2*x-m);
m = x;
s.push(x);
}
else{
s.push(x);
}
}
return ;
}

void MinStack::pop() {
if(s.empty()){
return ;
}

if(s.top()<m){
    // cout<<s.top()<<":"<<m<<"L";
    m = (2*m)-s.top();
    // cout<<m;
    
}
s.pop();
// cout<<m<<":";
return ;

}

int MinStack::top() {
if(s.empty()){
return -1;
}
else {
return s.top();
}
}

int MinStack::getMin() {
if(s.empty()){
return -1;
}
else{
return m;
}
}