Can anyone help me finding mistake


#1

Comment body goes here.long long int mini;stackst;
MinStack::MinStack() {
while(st.size())st.pop();
}

void MinStack::push(int x) {
if(st.empty()){st.push(x);mini=x;}

else{
     if(x>=mini)
     st.push(x);

      if(x<mini)
        { st.push(x-mini);
          mini=x;}
    }

}

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

if(st.top()<mini)
{ mini=mini-st.top();
st.pop();
}
else st.pop();
}

int MinStack::top() {
if(st.empty())
return -1;

else {
    if(st.top()<mini) return (mini-st.top());
    
    else return st.top();
}

}

int MinStack::getMin() {
if(!st.empty())
return mini;

else return -1;

}

my function returned
644643544 644643544 644643544 644643544 909204 909204 909204 909204 465865082 465865082 909204 573041392 909204 776647984 573041392 884224920 884224920 909204 626132265 909204 909204 118819922 909204 909204 26748055 909204 895351682 909204 127364950 909204 76234642 909204 909204 76234642 909204 909204 909204 593912449 909204 909204 120254050 120254050 909204 281700253 107300696 107300696 348668934 348668934 909204 909204 646116941 909204 909204 909204 909204 488822038 909204 909204 909204 646116941 909204 909204 185805946 185805946 185805946 909204 909204 909204 909204 238471928 238471928 909204 348668934 909204 909204 348668934 909204 743998858 909204 182168561 909204 909204 909204 89970109 89970109 528152523 750873206 750873206 909204 125328730 750873206 860096457 860096457 909204 909204 909204 561229779 750873206 750873206 750873206 909204 89970109 89970109 909204 89970109 909204 89970109 909204 909204 909204 22516828 909204 909204 909204 909204 909204 243176345 909204 909204 909204 909204 909204 909204 517352357 909204 895351682 909204 847833679 26748055 26748055 26748055 26748055 909204 573041392 652875950 606686342 909204 606686342 606686342 909204 917778387 118202971 809454497 909204 909204 118202971 118202971 909204 909204 724206024 724206024 724206024 917778387 652875950 652875950 652875950 652875950 909204 909204 909204 926280810 909204 909204 909204 909204 926280810 926280810 909204 652875950 909204 909204 909204 964576672 652875950 909204 349308524 909204 909204 824230322 573041392 909204 909204 54394415 909204 909204 909204 909204 909204 296766867 754491210 754491210 909204 -1 780809279 998849637 780809279 780809279 780809279 780809279 814651044 814651044 780809279 780809279 780809279 89830827 89830827 662618586 730272441 247368207 89830827 89830827 621571093 247368207 89830827 247368207 247368207 89830827 89830827 89830827 89830827 136877685 278152626 89830827 278152626 278152626 278152626 89830827 -1 229722550 229722550 229722550 121870305 121870305 121870305 618922784 618922784 618922784 462348827 604617481 604617481 604617481 -1 -1 541892421 9071319 369222651 9071319 9071319 9071319 9071319 327003375 9071319 9071319 9071319 9071319 972120060 9071319 327003375 327003375 327003375 327003375 327003375 327003375 9071319 9071319 9071319 9071319 541892421 541892421 895785982 895785982 152298972 895785982 895785982 895785982 895785982 895785982 86452767 126101020 895785982 -1 -1 -1 -1 -1 -1 709040762 709040762 709040762 709040762 709040762 709040762 709040762 709040762 533112170 533112170 -1 103302239 103302239 103302239 103302239 103302239 731860400 -1 -1 -1 -1 -1 -1 -1 373884541 373884541 -1 -1 280232551 280232551 -1 -1 304880476 304880476 304880476 304880476 39553022 39553022 39553022 45007612 45007612 45007612 174625619 174625619 304880476 45007612 45007612 135094596 135094596 2359009 2359009 2359009 2359009 304880476 -1 -1 -1 -1 964834539 934935549 186258833 186258833 934935549 353623991 186258833 165212936 165212936 1670863 1670863 179753601 580149290 580149290 777712799 21842309 555402283 21842309 21842309 21842309 21842309 21842309 21842309 777712799 21842309 21842309 179753601 179753601 179753601 179753601 745438423 179753601 179753601 179753601 492794836 492794836 911490527 911490527 179753601 29843435 55522554 911490527 492794836 492794836 186258833 179753601 179753601 186258833 353623991 353623991 353623991 186258833 186258833 619917644 54582821 54582821 -1 -1 -1 366155438 366155438 366155438 366155438 119307898 119307898 119307898 585762794 482263814 585762794 119307898 891773904 119307898 136953609 119307898 136953609 536501786 891773904 119307898 119307898 337604683 119307898 -1 12446017 12446017 12446017 859363430 859363430 970004511 660673550 660673550 660673550 660673550 27229714 660673550 660673550 27229714 27229714 829997260 27229714 27229714 464667952 27229714 955115299 27229714 660673550 27229714 660673550

Expected output

644643544 644643544 644643544 644643544 909204 909204 909204 909204 465865082 465865082 909204 573041392 909204 776647984 573041392 884224920 884224920 909204 626132265 909204 909204 118819922 909204 909204 26748055 909204 895351682 909204 127364950 909204 76234642 909204 909204 76234642 909204 909204 909204 593912449 909204 909204 120254050 120254050 909204 281700253 107300696 107300696 348668934 348668934 909204 909204 646116941 909204 909204 909204 909204 488822038 909204 909204 909204 646116941 909204 909204 185805946 185805946 185805946 909204 909204 909204 909204 238471928 238471928 909204 348668934 909204 909204 348668934 909204 743998858 909204 182168561 909204 909204 909204 89970109 89970109 528152523 750873206 750873206 909204 125328730 750873206 860096457 860096457 909204 909204 909204 561229779 750873206 750873206 750873206 909204 89970109 89970109 909204 89970109 909204 89970109 909204 909204 909204 22516828 909204 909204 909204 909204 909204 243176345 909204 909204 909204 909204 909204 909204 517352357 909204 895351682 909204 847833679 26748055 26748055 26748055 26748055 909204 573041392 652875950 606686342 909204 606686342 606686342 909204 917778387 118202971 809454497 909204 909204 118202971 118202971 909204 909204 724206024 724206024 724206024 917778387 652875950 652875950 652875950 652875950 909204 909204 909204 926280810 909204 909204 909204 909204 926280810 926280810 909204 652875950 909204 909204 909204 964576672 652875950 909204 349308524 909204 909204 824230322 573041392 909204 909204 54394415 909204 909204 909204 909204 909204 296766867 754491210 754491210 909204 -1 780809279 998849637 57337424 57337424 57337424 780809279 814651044 814651044 780809279 780809279 780809279 89830827 89830827 662618586 730272441 247368207 89830827 89830827 621571093 247368207 89830827 247368207 247368207 89830827 89830827 89830827 89830827 136877685 278152626 89830827 278152626 278152626 278152626 89830827 -1 229722550 229722550 229722550 121870305 121870305 121870305 618922784 618922784 618922784 462348827 604617481 604617481 604617481 -1 -1 9071319 9071319 369222651 9071319 9071319 9071319 9071319 327003375 9071319 9071319 9071319 9071319 972120060 9071319 327003375 327003375 327003375 327003375 327003375 327003375 9071319 9071319 9071319 9071319 9071319 9071319 895785982 593298567 152298972 895785982 895785982 895785982 895785982 895785982 86452767 126101020 576987968 -1 -1 -1 -1 -1 -1 709040762 709040762 709040762 709040762 709040762 709040762 709040762 709040762 533112170 533112170 -1 103302239 103302239 103302239 103302239 103302239 731860400 -1 -1 -1 -1 -1 -1 -1 373884541 373884541 -1 -1 280232551 121479941 -1 -1 304880476 304880476 304880476 304880476 39553022 39553022 39553022 39553022 39553022 45007612 174625619 174625619 45007612 45007612 45007612 135094596 2359009 2359009 2359009 2359009 2359009 304880476 -1 -1 -1 -1 964834539 934935549 186258833 186258833 934935549 353623991 186258833 165212936 1670863 1670863 1670863 179753601 580149290 580149290 777712799 21842309 555402283 21842309 21842309 21842309 21842309 21842309 21842309 777712799 21842309 21842309 179753601 179753601 179753601 179753601 745438423 88773973 179753601 179753601 492794836 492794836 911490527 911490527 179753601 29843435 29843435 911490527 492794836 492794836 179753601 179753601 179753601 186258833 353623991 353623991 353623991 186258833 54582821 619917644 54582821 54582821 -1 -1 -1 366155438 366155438 366155438 366155438 119307898 119307898 119307898 585762794 482263814 585762794 119307898 891773904 119307898 136953609 119307898 136953609 536501786 891773904 119307898 119307898 337604683 119307898 -1 12446017 12446017 12446017 859363430 859363430 970004511 660673550 660673550 307165825 307165825 27229714 27229714 27229714 27229714 27229714 829997260 27229714 27229714 464667952 27229714 955115299 27229714 27229714 27229714 660673550


#3
int MinStack::top() {
if(st.empty())
return -1;
else {
    if(st.top()<mini) return (mini-st.top());
    
    else return st.top();
}
}
 if(st.top()<mini) return (mini-st.top());

This line should be

if(st.top()<mini) return mini;

while pushing we push y = mini_till_now - x. Now at this point the correct value is x. Now while poping mini = mini - y gives min_till_now