#include<iostream>
using namespace std;
struct stack{
int size;
int top;
int *arr;
};
// int peek(stack * s, int i){
// int arrayind=s->top-i+1;
// if(arrayind<0){
// cout<<"NOT VALID!!!"<<endl;
// return -1;
// }
// else{
// return s->arr[arrayind];
// }
// }
int stacktop(stack * ptr){
return ptr->arr[ptr->top];
}
int stackbottom(stack * ptr){
return ptr->arr[0];
}
void push(struct stack* ptr, int val){
if(ptr->top==ptr->size-1){
cout<<"stack overflow"<<endl;
}
else{
ptr->top++;
ptr->arr[ptr->top] = val;
}
}
int main(){
stack * s=new stack;
s->top=-1;
// cin>>s->size;
s->size=9;
s->arr=new int;
push(s, 1);
push(s, 23);
push(s, 99);
push(s, 75);
push(s, 3);
push(s, 64);
push(s, 57);
push(s, 46);
push(s, 89);
// for (int j = 1; j <= s->top+1; j++)
// {
// cout<<" The value at position "<<j<<" is "<<peek(s,j)<<endl;
// }
// cout<<"The topmost element in stack is: "<<stacktop(s)<<endl;
// cout<<"The bottommost element in stack is: "<<stackbottom(s)<<endl;
cout<<stacktop(s)<<endl;
cout<<stackbottom(s)<<endl;
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3Qgc3RhY2t7CiAgICBpbnQgc2l6ZTsKICAgIGludCB0b3A7CiAgICBpbnQgKmFycjsKfTsKCi8vIGludCBwZWVrKHN0YWNrICogcywgaW50IGkpewovLyAgICAgaW50IGFycmF5aW5kPXMtPnRvcC1pKzE7Ci8vICAgICBpZihhcnJheWluZDwwKXsKLy8gICAgICAgICBjb3V0PDwiTk9UIFZBTElEISEhIjw8ZW5kbDsKLy8gICAgICAgICByZXR1cm4gLTE7Ci8vICAgICB9Ci8vICAgICBlbHNlewovLyAgICAgICAgIHJldHVybiBzLT5hcnJbYXJyYXlpbmRdOwovLyAgICAgfQovLyB9CgppbnQgc3RhY2t0b3Aoc3RhY2sgKiBwdHIpewogICAgcmV0dXJuIHB0ci0+YXJyW3B0ci0+dG9wXTsKfQoKaW50IHN0YWNrYm90dG9tKHN0YWNrICogcHRyKXsKICAgIHJldHVybiBwdHItPmFyclswXTsKfQoKdm9pZCBwdXNoKHN0cnVjdCBzdGFjayogcHRyLCBpbnQgdmFsKXsKICAgIGlmKHB0ci0+dG9wPT1wdHItPnNpemUtMSl7CiAgICAgICAgY291dDw8InN0YWNrIG92ZXJmbG93Ijw8ZW5kbDsKICAgICAgICAKICAgIH0KICAgIGVsc2V7CiAgICAgICAgcHRyLT50b3ArKzsKICAgICAgICBwdHItPmFycltwdHItPnRvcF0gPSB2YWw7CiAgICAKICAgIH0KfQppbnQgbWFpbigpewogICAgc3RhY2sgKiBzPW5ldyBzdGFjazsKICAgIHMtPnRvcD0tMTsKICAgIC8vIGNpbj4+cy0+c2l6ZTsKICAgIHMtPnNpemU9OTsKICAgIHMtPmFycj1uZXcgaW50OwogICAgcHVzaChzLCAxKTsKICAgIHB1c2gocywgMjMpOwogICAgcHVzaChzLCA5OSk7CiAgICBwdXNoKHMsIDc1KTsKICAgIHB1c2gocywgMyk7CiAgICBwdXNoKHMsIDY0KTsKICAgIHB1c2gocywgNTcpOwogICAgcHVzaChzLCA0Nik7CiAgICBwdXNoKHMsIDg5KTsKICAgIC8vIGZvciAoaW50IGogPSAxOyBqIDw9IHMtPnRvcCsxOyBqKyspCiAgICAvLyB7CiAgICAvLyAgICAgY291dDw8IiBUaGUgdmFsdWUgYXQgcG9zaXRpb24gIjw8ajw8IiBpcyAiPDxwZWVrKHMsaik8PGVuZGw7CiAgICAvLyB9CiAgICAvLyBjb3V0PDwiVGhlIHRvcG1vc3QgZWxlbWVudCBpbiBzdGFjayBpczogIjw8c3RhY2t0b3Aocyk8PGVuZGw7CiAgICAvLyBjb3V0PDwiVGhlIGJvdHRvbW1vc3QgZWxlbWVudCBpbiBzdGFjayBpczogIjw8c3RhY2tib3R0b20ocyk8PGVuZGw7CiAgICBjb3V0PDxzdGFja3RvcChzKTw8ZW5kbDsKICAgIGNvdXQ8PHN0YWNrYm90dG9tKHMpPDxlbmRsOwogICAgcmV0dXJuIDA7Cn0=