class Solution { public: void push(int value) { data.push(value); if(mindata.empty()) mindata.push(value); else mindata.push(value<mindata.top()?value:mindata.top()); } void pop() { data.pop(); mindata.pop(); } int top() { return data.top(); } int min() { return mindata.top(); } private: stack<int> data,mindata; };