Продавцы участвовали во внутреннем конкурсе. Итоги пока не объявлены, но каждому нужно
сообщить, сколько других участников продали строго меньше него. По этой цифре
нельзя восстановить ни общее число участников, ни точное место.
sales[i] — продажи i-го продавца. Верните слайс той же длины, где res[i] — число
j, для которых sales[j] < sales[i].
// CountBehind возвращает для каждого продавца число участников
// со строго меньшими продажами.
func CountBehind(sales []int) []int
Примеры
CountBehind([]int{9, 2, 4, 4, 6}) // [4 0 1 1 3]
CountBehind([]int{7, 7, 7, 7}) // [0 0 0 0]
CountBehind([]int{1}) // [0]
Ограничения: 0 <= len(sales) <= 2·10^5, 0 <= sales[i] <= 10^9. Время быстрее O(n²).
Вход не изменять.
Устно: как решить за O(n), если продажи ограничены, например 0 <= sales[i] <= 100?