Входные данные:
Ввод - это рандомизированный массив орехов (на вашем языке), возможные орехи следуют. Ваша программа должна иметь способ представления каждого вида орехов, таких как целочисленный код. Программа должна быть в состоянии обрабатывать любой размер массива любой конфигурации орехов.
Возможные орехи:
Kola nut
Macadamia
Mamoncillo
Maya nut
Mongongo
Oak acorns
Ogbono nut
Paradise nut
Pili nut
Pistachio
Walnut
Выход:
Выходными данными должен быть массив, отсортированный таким образом, чтобы не было смежных гаек одного и того же вида. Если это невозможно, на выходе должен быть пустой массив.
Пример ввода (упрощенно):
["walnut", "walnut", "pistachio"]
Пример вывода:
["walnut", "pistachio", "walnut"]
Решения могут не просто перемешать массив, пока он не станет уникальным случайно. Используемый сорт должен быть детерминированным
perl6 -e 'my @a="aaaaabbbbccccdddee".comb;my @b = @a.pick(*) while @b.squish !== @a;say [~] @b'
baedcbdacdecbabaca
(3,3,2) может привести к их отказу также.