"""
Реализуйте структуру данных, представляющую собой расширенную структуру стек.
Необходимо поддерживать добавление элемента на вершину стека, удаление с вершины стека, и необходимо поддерживать операции сложения,
вычитания, умножения и целочисленного деления.

Операция сложения на стеке определяется следующим образом. Со стека снимается верхний элемент (top1),
затем снимается следующий верхний элемент (top2), и затем как результат операции сложения на вершину стека кладется элемент, равный top1 + top2.

Аналогичным образом определяются операции вычитания (top1 - top2), умножения (top1 * top2) и целочисленного деления (top1 // top2).
"""


class ExtendedStack(list):
    def sum(self):
        self.append(self.pop() + self.pop())
        return self

    def sub(self):
        self.append(self.pop() - self.pop())
        return self

    def mul(self):
        self.append(self.pop() * self.pop())
        return self

    def div(self):
        self.append(self.pop() // self.pop())
        return self


l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
lst = ExtendedStack(l)

print(lst.sum())
print(lst.sum())
