Там є річка, а з одного боку річки є вовки та кури. У них є пліт, і всі вони повинні дістатися до іншої сторони. Однак пліт не може подорожувати самостійно. Пліт затопить, якщо на ньому більше двох тварин. Жодна з тварин не хоче мокнути, бо річка холодна і брудна. Жодна з тварин не може стрибати чи літати над річкою. Крім того, якщо на одній стороні є кури, на цій стороні не може бути більше вовків, ніж на цій стороні кури - вовки вирішать їсти курей. Це означає, що ви не можете взяти двох вовків на пліт в сторону з однією куркою.
Ваше завдання - скласти програму / функцію, яка приймає в якості кількості вовків і кількість курей (більша або дорівнює кількості вовків) і знаходить найменшу кількість разів пліт повинен пересуватися через річку. Якщо завдання неможливо, програма / функція повинна вивести / повернути порожній рядок. Потім він надрукує / поверне один метод щодо того, як це робиться наступним чином:
W if a wolf crosses the river on its own
C if a chicken crosses the river on its own
CW if a chicken and a wolf cross the river -- WC is also fine
CC if two chickens cross the river
WW if two wolves cross the river
Як ви можете зробити висновок, пліт автоматично рухатиметься в поперемінних напрямках (ліворуч і праворуч, починаючи зліва направо, коли перша або дві тварини перетинають річку). Це не потрібно виводити / повертати. 'W', 'C', 'CW', 'CC' або 'WW' у висновку можуть бути розділені щонайменше одним із наступних:
spaces (' ')
commas (',')
newlines
Крім того, ви можете зберігати вказівки як елементи в списку (порожній список означає, що немає рішення).
Тестові випадки (вихід відокремлений комами - введення має форму wolves,chickens
):
1,1 -> CW
2,2 -> CW,C,CC,C,CW
1,2 -> CW,W,CW
0,10 -> CC,C,CC,C,CC,C,CC,C,CC,C,CC,C,CC,C,CC,C,CC
3,2 -> no solution
Спробуйте зробити свій код якомога коротшим у байтах.