#include <bits/stdc++.h>
using namespace std;
void rev(stack<int>&x){
int sz=x.size(),mytop,mybottom;
mytop=x.top();
x.pop();
int tmp[sz-1],i=0;
while(!x.empty()){
mybottom=x.top();
tmp[i++]=mybottom;
x.pop();
}
stack<int> returnIt;
returnIt.push(mybottom);
for(i=0;i<=sz-3;i++){
returnIt.push(tmp[i]);
}
returnIt.push(mytop);
while(!returnIt.empty()){
int tt=returnIt.top();
x.push(tt);
returnIt.pop();
}
}
int main() {
// your code goes here
stack<int>x;
x.push(1);
x.push(2);
x.push(3);
x.push(4);
x.push(5);
stack<int>y=x;
cout<<"Before reversing : ";
while(!y.empty()){
int tt=y.top();
cout<<tt;
y.pop();
}
rev(x);
cout<<"\nAfter reversing : ";
while(!x.empty()){
cout<<x.top();
x.pop();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZvaWQgcmV2KHN0YWNrPGludD4meCl7CglpbnQgc3o9eC5zaXplKCksbXl0b3AsbXlib3R0b207CiAgICBteXRvcD14LnRvcCgpOwogICAgeC5wb3AoKTsKICAgIGludCB0bXBbc3otMV0saT0wOwogICAgd2hpbGUoIXguZW1wdHkoKSl7CiAgICAgICAgbXlib3R0b209eC50b3AoKTsKICAgICAgICB0bXBbaSsrXT1teWJvdHRvbTsKICAgICAgICB4LnBvcCgpOwogICAgICAgIH0gCiAgICBzdGFjazxpbnQ+IHJldHVybkl0OwogICAgcmV0dXJuSXQucHVzaChteWJvdHRvbSk7CiAgICBmb3IoaT0wO2k8PXN6LTM7aSsrKXsKICAgICAgICByZXR1cm5JdC5wdXNoKHRtcFtpXSk7CiAgICAgICAgfQogICAgcmV0dXJuSXQucHVzaChteXRvcCk7CiAgICB3aGlsZSghcmV0dXJuSXQuZW1wdHkoKSl7CiAgICAJaW50IHR0PXJldHVybkl0LnRvcCgpOwogICAgCXgucHVzaCh0dCk7CiAgICAJcmV0dXJuSXQucG9wKCk7CiAgICB9Cgl9CmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJc3RhY2s8aW50Png7Cgl4LnB1c2goMSk7Cgl4LnB1c2goMik7Cgl4LnB1c2goMyk7Cgl4LnB1c2goNCk7Cgl4LnB1c2goNSk7CglzdGFjazxpbnQ+eT14OwoJY291dDw8IkJlZm9yZSByZXZlcnNpbmcgOiAiOwoJd2hpbGUoIXkuZW1wdHkoKSl7CgkJaW50IHR0PXkudG9wKCk7CgkJY291dDw8dHQ7CgkJeS5wb3AoKTsKCX0KCQoJcmV2KHgpOwoJY291dDw8IlxuQWZ0ZXIgcmV2ZXJzaW5nIDogIjsKCXdoaWxlKCF4LmVtcHR5KCkpewoJCWNvdXQ8PHgudG9wKCk7CgkJeC5wb3AoKTsKCX0KCXJldHVybiAwOwp9