/*#include <bits/stdc++.h>
using namespace std;
int main(){
int n,i,x,y;
scanf("%d%d%d",&n,&x,&y);
int a[n+1],b[n+1],who[n+1],howmuch[n+1];
for(i=1;i<=n;i++){
scanf("%d",&a[i]);
}
for(i=1;i<=n;i++){
scanf("%d",&b[i]);
}
int one=0,two=0;
vector<pair<int,pair<int ,int> > >vp;
for(i=1;i<=n;i++){
//~ if(a[i]>=b[i]){
//~ who[i]=1;
//~ one++;
//~ howmuch[i]=a[i];
//~ vp.push_back(make_pair(a[i],1));
//~ }
//~ else {
//~ who[i]=2;
//~ two++;
//~ howmuch[i]=b[i];
//~ vp.push_back(make_pair(b[i],2));
//~ }
vp.push_back(make_pair(abs(a[i]-b[i]),make_pair(a[i],b[i])));
}
int ans=0;
sort(vp,vp+sizeof(vp));
for(i=1;i<=n;i++){
if(vp[i].second.first > vp[i].second.second && x>0){
x--;
ans+=vp[i].second.first;
}
else if(y>0){
y--;
ans+=vp[i].second.second;
}
}
printf("%d",ans);
return 0;
}
*/
#include <bits/stdc++.h>
using namespace std;
#define maxi 1001
class Stack
{
public :
int data[ maxi] ;
int top,length;
Stack( int ) ;
//~Stack();
void push( int ) ;
int pop( ) ;
int func( ) ;
void display( ) ;
void Swap( Stack & ) ;
bool isEmpty( ) ;
bool isFull( ) ;
} ;
Stack:: Stack ( int size)
{
top= - 1 ;
length= size;
}
//Stack::~Stack(){
// delete [] data;
//}
void Stack:: push ( int elem)
{
if ( top== ( length- 1 ) ) //If the top reaches to the maximum stack size
{
cout << "\n Cannot push " << elem<< ", Stack full" << endl;
return ;
}
else
{
//for(int i=0;i<length;i++){
//cin>>elem;
top++ ;
data[ top] = elem;
//}
}
}
int Stack:: pop ( )
{
if ( top== - 1 )
{
cout << "Stack empty!" ;
return - 1 ;
}
int ret= data[ top] ;
top-- ;
return ret;
}
void Stack:: display ( )
{
for ( int i = 0 ; i <= top; i++ )
cout << data[ i] << " " ;
cout << endl;
}
bool Stack:: isEmpty ( )
{
if ( top== - 1 ) { return 1 ; }
else return 0 ;
}
bool Stack:: isFull ( )
{
if ( top== length) { return 1 ; }
else return 0 ;
}
void Stack :: Swap ( Stack & x) {
int sz= x.length ,mytop,mybottom;
mytop= x.pop ( ) ;
int tmp[ sz- 1 ] ,i= 0 ;
while ( ! x.isEmpty ( ) ) {
mybottom= x.pop ( ) ;
tmp[ i++ ] = mybottom;
}
Stack returnIt( sz) ;
returnIt.push ( mybottom) ;
for ( i= 0 ; i<= sz- 3 ; i++ ) {
returnIt.push ( tmp[ i] ) ;
}
returnIt.push ( mytop) ;
x.length = sz;
x.top = - 1 ;
while ( ! returnIt.isEmpty ( ) ) {
int tt= returnIt.pop ( ) ;
x.push ( tt) ;
}
}
int main( )
{
int len;
cout << "Enter length of stack : " ;
cin >> len;
Stack s1( len) ;
for ( int i= 0 ; i< len; i++ ) {
int element;
cout << "Enter element to push into stack : " ;
cin >> element;
s1.push ( element) ;
}
//s1.push(1);
//s1.push(2);
//s1.push(3);
//s1.push(4);
//s1.push(5);
//s1.push(6);
//s1.push(7);
//s1.push(8);
//s1.push(9);
cout << "\n Stack before swapping : " ;
s1.display ( ) ;
s1.Swap ( s1) ;
cout << "\n Stack after swapping : " ;
s1.display ( ) ;
}
LyojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCl7CglpbnQgbixpLHgseTsKCXNjYW5mKCIlZCVkJWQiLCZuLCZ4LCZ5KTsKCWludCBhW24rMV0sYltuKzFdLHdob1tuKzFdLGhvd211Y2hbbisxXTsKCWZvcihpPTE7aTw9bjtpKyspewoJCXNjYW5mKCIlZCIsJmFbaV0pOwoJCX0KCWZvcihpPTE7aTw9bjtpKyspewoJCXNjYW5mKCIlZCIsJmJbaV0pOwoJCX0KCWludCBvbmU9MCx0d289MDsKCXZlY3RvcjxwYWlyPGludCxwYWlyPGludCAsaW50PiA+ID52cDsKCWZvcihpPTE7aTw9bjtpKyspewoJCS8vfiBpZihhW2ldPj1iW2ldKXsKCQkJLy9+IHdob1tpXT0xOwoJCQkvL34gb25lKys7CgkJCS8vfiBob3dtdWNoW2ldPWFbaV07CgkJCS8vfiB2cC5wdXNoX2JhY2sobWFrZV9wYWlyKGFbaV0sMSkpOwoJCQkvL34gfQoJCS8vfiBlbHNlIHsKCQkJLy9+IHdob1tpXT0yOwoJCQkvL34gdHdvKys7CgkJCS8vfiBob3dtdWNoW2ldPWJbaV07CgkJCS8vfiB2cC5wdXNoX2JhY2sobWFrZV9wYWlyKGJbaV0sMikpOwoJCQkvL34gfQoJCXZwLnB1c2hfYmFjayhtYWtlX3BhaXIoYWJzKGFbaV0tYltpXSksbWFrZV9wYWlyKGFbaV0sYltpXSkpKTsKCQl9CglpbnQgYW5zPTA7Cglzb3J0KHZwLHZwK3NpemVvZih2cCkpOwoJZm9yKGk9MTtpPD1uO2krKyl7CgkJaWYodnBbaV0uc2Vjb25kLmZpcnN0ID4gdnBbaV0uc2Vjb25kLnNlY29uZCAmJiB4PjApewoJCQl4LS07CgkJCWFucys9dnBbaV0uc2Vjb25kLmZpcnN0OwoJCQl9CgkJZWxzZSBpZih5PjApewoJCQl5LS07CgkJCWFucys9dnBbaV0uc2Vjb25kLnNlY29uZDsKCQkJfQoJCX0KCXByaW50ZigiJWQiLGFucyk7CglyZXR1cm4gMDsKCX0KKi8KCgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBtYXhpIDEwMDEKY2xhc3MgU3RhY2sKewpwdWJsaWM6CiAgICBpbnQgZGF0YVttYXhpXTsKICAgIGludCB0b3AsbGVuZ3RoOwogICAgU3RhY2soaW50KTsKICAgIC8vflN0YWNrKCk7CgogICAgdm9pZCBwdXNoKGludCk7CiAgICBpbnQgcG9wKCk7CiAgICBpbnQgZnVuYygpOwogICAgdm9pZCBkaXNwbGF5KCk7CiAgICB2b2lkIFN3YXAoU3RhY2sgJik7CiAgICBib29sIGlzRW1wdHkoKTsKICAgIGJvb2wgaXNGdWxsKCk7Cn07CgpTdGFjazo6U3RhY2soaW50IHNpemUpCnsKICAgIHRvcD0tMTsKICAgIGxlbmd0aD1zaXplOwp9CgovL1N0YWNrOjp+U3RhY2soKXsKLy8gICAgZGVsZXRlIFtdIGRhdGE7Ci8vfQoKdm9pZCBTdGFjazo6cHVzaChpbnQgZWxlbSkKewogICAgCiAgICBpZih0b3A9PShsZW5ndGgtMSkpICAgICAvL0lmIHRoZSB0b3AgcmVhY2hlcyB0byB0aGUgbWF4aW11bSBzdGFjayBzaXplCiAgICB7CiAgICAgICAgY291dDw8IlxuQ2Fubm90IHB1c2ggIjw8ZWxlbTw8IiwgU3RhY2sgZnVsbCI8PGVuZGw7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgZWxzZQogICAgewogICAgICAgIC8vZm9yKGludCBpPTA7aTxsZW5ndGg7aSsrKXsKICAgICAgICAvL2Npbj4+ZWxlbTsKICAgICAgICB0b3ArKzsKICAgICAgICBkYXRhW3RvcF09ZWxlbTsKICAgICAgICAvL30KICAgIH0KfQppbnQgU3RhY2s6OnBvcCgpCnsKICAgIGlmKHRvcD09LTEpCiAgICB7CiAgICAgICAgY291dDw8IlN0YWNrIGVtcHR5ISI7CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQogICAgaW50IHJldD1kYXRhW3RvcF07CiAgICB0b3AtLTsKICAgIHJldHVybiByZXQ7Cn0KCnZvaWQgU3RhY2s6OmRpc3BsYXkoKQp7CiAgICBmb3IoaW50IGkgPSAwOyBpIDw9IHRvcDsgaSsrKQogICAgICAgIGNvdXQ8PGRhdGFbaV08PCIgIjsKICAgIGNvdXQ8PGVuZGw7Cn0KCmJvb2wgU3RhY2s6OmlzRW1wdHkoKQp7CiAgICBpZih0b3A9PS0xKXtyZXR1cm4gMTt9CiAgICBlbHNlIHJldHVybiAwOwp9CmJvb2wgU3RhY2s6OmlzRnVsbCgpCnsKICAgIGlmICh0b3A9PWxlbmd0aCl7cmV0dXJuIDE7fQogICAgZWxzZSByZXR1cm4gMDsKfQoKdm9pZCBTdGFjayA6OlN3YXAoU3RhY2sgJngpewoJaW50IHN6PXgubGVuZ3RoLG15dG9wLG15Ym90dG9tOwogICAgbXl0b3A9eC5wb3AoKTsKICAgIGludCB0bXBbc3otMV0saT0wOwogICAgd2hpbGUoIXguaXNFbXB0eSgpKXsKICAgICAgICBteWJvdHRvbT14LnBvcCgpOwogICAgICAgIHRtcFtpKytdPW15Ym90dG9tOwogICAgICAgIH0KICAgIFN0YWNrIHJldHVybkl0KHN6KTsKICAgIHJldHVybkl0LnB1c2gobXlib3R0b20pOwogICAgZm9yKGk9MDtpPD1zei0zO2krKyl7CiAgICAgICAgcmV0dXJuSXQucHVzaCh0bXBbaV0pOwogICAgICAgIH0KICAgIHJldHVybkl0LnB1c2gobXl0b3ApOwogICAgeC5sZW5ndGg9c3o7CiAgICB4LnRvcD0tMTsKICAgIHdoaWxlKCFyZXR1cm5JdC5pc0VtcHR5KCkpewogICAgCWludCB0dD1yZXR1cm5JdC5wb3AoKTsKICAgIAl4LnB1c2godHQpOwogICAgfQoJfQppbnQgbWFpbigpCnsKCWludCBsZW47CiAgICBjb3V0PDwiRW50ZXIgbGVuZ3RoIG9mIHN0YWNrIDogIjsKICAgIGNpbj4+bGVuOwogICAgU3RhY2sgczEobGVuKTsKICAgIGZvcihpbnQgaT0wO2k8bGVuO2krKyl7CgkJaW50IGVsZW1lbnQ7CgkJY291dDw8IkVudGVyIGVsZW1lbnQgdG8gcHVzaCBpbnRvIHN0YWNrIDogIjsKCQljaW4+PmVsZW1lbnQ7CgkJczEucHVzaChlbGVtZW50KTsKCQl9CiAgICAvL3MxLnB1c2goMSk7CiAgICAvL3MxLnB1c2goMik7CiAgICAvL3MxLnB1c2goMyk7CiAgICAvL3MxLnB1c2goNCk7CiAgICAvL3MxLnB1c2goNSk7CiAgICAvL3MxLnB1c2goNik7CiAgICAvL3MxLnB1c2goNyk7CiAgICAvL3MxLnB1c2goOCk7CiAgICAvL3MxLnB1c2goOSk7CiAgICBjb3V0PDwiXG5TdGFjayBiZWZvcmUgc3dhcHBpbmcgOiAiOwogICAgczEuZGlzcGxheSgpOwogICAgczEuU3dhcChzMSk7CiAgICBjb3V0PDwiXG5TdGFjayBhZnRlciBzd2FwcGluZyA6ICI7CiAgICBzMS5kaXNwbGF5KCk7Cn0K