labels[i] — метка i-й коробки. Оператору нужно переставить коробки так, чтобы никакие две соседние не имели одинаковой метки. Гарантируется, что это возможно.
Перестановок обычно много, поэтому постройте вот эту:
1. Выстройте коробки в очередь: сначала все коробки самой частой метки, затем следующей по частоте и так далее. Если метки встречаются одинаково часто, раньше идёт меньшая.
2. Раздавайте коробки из очереди по позициям 0, 2, 4, …, а когда чётные позиции закончатся — по позициям 1, 3, 5, ….
Верните получившийся ряд меток. Подумайте, почему в нём не окажется двух одинаковых соседей.labels=[7, 3, 7, 3, 7] → [7, 3, 7, 3, 7]
Метка 7 встречается три раза, 3 — дважды. Порядок раскладки: 7, 7, 7, 3, 3. Позиции 0, 2, 4 получают 7, позиции 1 и 3 — 3.
labels=[5, 2, 9, 2, 5, 9] → [2, 5, 2, 9, 5, 9]
Все метки встречаются по два раза, поэтому порядок по значению: 2, 2, 5, 5, 9, 9. Чётные позиции получают 2, 2, 5, нечётные — 5, 9, 9.
labels=[4] → [4]
labels=[7, 3, 7, 3, 7]
[7, 3, 7, 3, 7]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 96 тестов на сервере, включая скрытые.