Загрузка данных


class MyQueue:

    def __init__(self):
        self.in_stack = []
        self.out_stack = []

    def push(self, x: int) -> None:
        # Всегда добавляем в входной стек
        self.in_stack.append(x)

    def pop(self) -> int:
        # Сначала убеждаемся, что элементы переложены
        self.peek()
        # Теперь вершина out_stack - это первый элемент очереди
        return self.out_stack.pop()

    def peek(self) -> int:
        # Если выходной стек пуст, перекладываем туда все из входного
        if not self.out_stack:
            while self.in_stack:
                self.out_stack.append(self.in_stack.pop())
        # Возвращаем верхний элемент, не удаляя его
        return self.out_stack[-1]

    def empty(self) -> bool:
        # Очередь пуста, только если оба стека пусты
        return not self.in_stack and not self.out_stack