Оптимизировать python задачу на двумерные массивы

Помогите ускорить решение, пожалуйста!

Условие: в первой строке вводится число N, далее в N строках вводится по 2 числа a и b. Их нужно считать, если b не равен 0, то список [a, b] добавляется в массив. Соответственно, если в течение ввода b не равен 0, то получаем двумерный массив array[N][2]. Задача в том, чтобы отсортировать наш массив array сначала по убыванию второго элемента, потом по возрастанию первого элемента. Затем выводим текущее количество вложенных списков (необязательно N, т.к. по ходу ввода b могло быть равно 0). И, наконец, выводим отсортированный массив.

n = int(input())
all = []
for i in range(n):
    a, b = map(int, input().split())
    if b != 0:
        all.append([a, b])
all.sort(key=lambda x: (x[0], -x[1]))
print(len(all))
for i in all:
    print(*i)

Проблема в том, что решение не проходит по времени. Есть ли какой-то способ ускорить код?


Ответы (0 шт):