class stack:
def __init__(self,max_size):
self.__max_size=max_size
self.__elements=[None]*self.__max_size
self.__top=-1
def is_full(self):
if(self.__top==self.__max_size-1):
return True
return False
def is_empty(self):
if(self.__top==-1):
return True
return False
def push(self, data):
if(self.is_full()):
print("The stack is full!!")
else:
self.__top+=1
self.__elements[self.__top]=data
def pop(self):
if(self.is_empty()):
print("The stack is empty!!")
else:
data= self.__elements[self.__top]
self.__top-=1
return data
def display(self):
if(self.is_empty()):
print("The stack is empty")
else:
index=self.__top
while(index>=0):
print(self.__elements[index])
index-=1
def get_max_size(self):
return self.__max_size
def function (input_stack):
if input_stack.is_empty():
return
out_stack= stack(input_stack.get_max_size())
value=1
while (not input_stack.is_empty()):
out_stack.push(input_stack.pop()*value)
value+=1
if (out_stack.pop()//value)<value:
out_stack.push(out_stack.pop()*out_stack.pop())
return out_stack
s=stack(10)
s.push(5)
s.push(2)
s.push(7)
s.push(10)
s.push(3)
s1=function(s)
for i in range(3):
print(s1.pop())
Y2xhc3Mgc3RhY2s6CiAgICBkZWYgX19pbml0X18oc2VsZixtYXhfc2l6ZSk6CiAgICAgICAgc2VsZi5fX21heF9zaXplPW1heF9zaXplCiAgICAgICAgc2VsZi5fX2VsZW1lbnRzPVtOb25lXSpzZWxmLl9fbWF4X3NpemUKICAgICAgICBzZWxmLl9fdG9wPS0xCiAKICAgIGRlZiBpc19mdWxsKHNlbGYpOgogICAgICAgIGlmKHNlbGYuX190b3A9PXNlbGYuX19tYXhfc2l6ZS0xKToKICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICByZXR1cm4gRmFsc2UKIAogICAgZGVmIGlzX2VtcHR5KHNlbGYpOgogICAgICAgIGlmKHNlbGYuX190b3A9PS0xKToKICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICByZXR1cm4gRmFsc2UKIAogICAgZGVmIHB1c2goc2VsZiwgZGF0YSk6CiAgICAgICAgaWYoc2VsZi5pc19mdWxsKCkpOgogICAgICAgICAgICBwcmludCgiVGhlIHN0YWNrIGlzIGZ1bGwhISIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc2VsZi5fX3RvcCs9MQogICAgICAgICAgICBzZWxmLl9fZWxlbWVudHNbc2VsZi5fX3RvcF09ZGF0YQogCiAgICBkZWYgcG9wKHNlbGYpOgogICAgICAgIGlmKHNlbGYuaXNfZW1wdHkoKSk6CiAgICAgICAgICAgIHByaW50KCJUaGUgc3RhY2sgaXMgZW1wdHkhISIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgZGF0YT0gc2VsZi5fX2VsZW1lbnRzW3NlbGYuX190b3BdCiAgICAgICAgICAgIHNlbGYuX190b3AtPTEKICAgICAgICAgICAgcmV0dXJuIGRhdGEKIAogICAgZGVmIGRpc3BsYXkoc2VsZik6CiAgICAgICAgaWYoc2VsZi5pc19lbXB0eSgpKToKICAgICAgICAgICAgcHJpbnQoIlRoZSBzdGFjayBpcyBlbXB0eSIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgaW5kZXg9c2VsZi5fX3RvcAogICAgICAgICAgICB3aGlsZShpbmRleD49MCk6CiAgICAgICAgICAgICAgICBwcmludChzZWxmLl9fZWxlbWVudHNbaW5kZXhdKQogICAgICAgICAgICAgICAgaW5kZXgtPTEKIAogICAgZGVmIGdldF9tYXhfc2l6ZShzZWxmKToKICAgICAgICByZXR1cm4gc2VsZi5fX21heF9zaXplCiAgICAgICAgCiAgICAgICAgCmRlZiBmdW5jdGlvbiAoaW5wdXRfc3RhY2spOgogICAgaWYgaW5wdXRfc3RhY2suaXNfZW1wdHkoKToKICAgICAgICByZXR1cm4KICAgIG91dF9zdGFjaz0gc3RhY2soaW5wdXRfc3RhY2suZ2V0X21heF9zaXplKCkpCiAgICB2YWx1ZT0xCiAgICB3aGlsZSAobm90IGlucHV0X3N0YWNrLmlzX2VtcHR5KCkpOgogICAgICAgIG91dF9zdGFjay5wdXNoKGlucHV0X3N0YWNrLnBvcCgpKnZhbHVlKQogICAgICAgIHZhbHVlKz0xCiAgICBpZiAob3V0X3N0YWNrLnBvcCgpLy92YWx1ZSk8dmFsdWU6CiAgICAgICAgb3V0X3N0YWNrLnB1c2gob3V0X3N0YWNrLnBvcCgpKm91dF9zdGFjay5wb3AoKSkKICAgIHJldHVybiBvdXRfc3RhY2sKCnM9c3RhY2soMTApCnMucHVzaCg1KQpzLnB1c2goMikKcy5wdXNoKDcpCnMucHVzaCgxMCkKcy5wdXNoKDMpCnMxPWZ1bmN0aW9uKHMpCmZvciBpIGluIHJhbmdlKDMpOgogICAgcHJpbnQoczEucG9wKCkp