Палки после каждого среза

Есть набор палок разной длины, и на каждом шаге все оставшиеся палки укорачивают на длину самой короткой из них. Самые короткие после такого среза исчезают, остальные участвуют в следующем шаге. Функция получает список длин arr. Верните список чисел: сколько палок обрезали на каждом шаге, пока палки не закончатся.

Примеры

Ввод
[5, 4, 4, 2, 2, 8]
Вывод
[6, 4, 2, 1]
Ввод
[1, 2, 3, 4, 3, 3, 2, 1]
Вывод
[8, 6, 4, 1]
Ввод
[1, 1, 1, 1]
Вывод
[4]

Нужно реализовать

def cut_the_sticks(arr: list[int]) -> list[int]:

Теги

arraysorting
PostgreSQLv16

Здесь будет результат выполнения кода

Видимые тесты
1
Ввод
[5,4,4,2,2,8]
Ожидаемый[6,4,2,1]
2
Ввод
[1,2,3,4,3,3,2,1]
Ожидаемый[8,6,4,1]
3
Ввод
[1,1,1,1]
Ожидаемый[4]
4
Ввод
[5]
Ожидаемый[1]
5
Ввод
[3,3,2,1,3]
Ожидаемый[5,4,3]
6
Ввод
[]
Ожидаемый[]
Фокус-радио
На паузе · SomaFM · Fluid