Il y a une rivière et il y a des loups et des poulets d'un côté de la rivière. Ils ont un radeau et ils ont tous besoin de se rendre de l'autre côté. Cependant, le radeau ne peut pas voyager seul. Le radeau coulera si plus de deux animaux s'y trouvent. Aucun animal ne veut se mouiller à cause du froid et de la saleté de la rivière. Aucun des animaux ne peut sauter ou survoler la rivière. De plus, s'il y a des poulets d'un côté, il ne peut pas y avoir plus de loups de ce côté qu'il n'y a de poulets de ce côté - les loups décideront alors de manger les poulets. Cela signifie que vous ne pouvez pas prendre deux loups sur le radeau avec un poulet.
Votre tâche consiste à créer un programme / une fonction qui prend un certain nombre de loups et un certain nombre de poulets (supérieur ou égal au nombre de loups) en entrée et trouve le plus petit nombre de fois que le radeau doit se déplacer à travers la rivière. Si la tâche n'est pas possible, le programme / la fonction doit générer / renvoyer une chaîne vide. Il imprimera / retournera ensuite une méthode pour savoir comment procéder de la manière suivante:
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
Comme vous pouvez le déduire, le radeau se déplacera automatiquement dans des directions alternées (gauche et droite, en commençant de gauche à droite lorsque le premier ou les deux premiers animaux traversent la rivière). Cela n'a pas besoin d'être sorti / retourné. «W», «C», «CW», «CC» ou «WW» dans la sortie peuvent être séparés par au moins l'un des éléments suivants:
spaces (' ')
commas (',')
newlines
Alternativement, vous pouvez stocker les instructions en tant qu'éléments dans une liste (une liste vide signifie aucune solution).
Cas de test (sortie séparée par des virgules - l'entrée prend la forme 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
Essayez de rendre votre code aussi court en octets que possible.