Voici une ébauche de solution "a priori" (sans utiliser d'astuce):
Pour transporter N bananes sur une distance D, l'éléphant a besoin de parcourir:
* 5 fois la distance D (2 A/R + 1 aller) si 3000 >= N > 2000
* 3 fois la distance D si 2000 >= N > 1000
* 1 fois D si N <= 1000.
L'éléphant consomme alors X.D bananes (X=5, 3 ou 1), et il reste à l'arrivée N-X.D bananes
Ceci étant dit, avec N = 3000 bananes, on se trouve forcément dans l'un de ces 3 cas, quelle que soit la distance parcourue.
La conséquence en est que, si on parcourt une distance D1, puis une distance D2, mais que le nombre de bananes reste dans la même fourchette (définie au-dessus), alors, tout se passe comme si on avait parcouru en une seule fois la distance D1 + D2. On peut donc parcourir les 1000km de trajets avec au plus 2 arrêts.
Il est clair qu'avec aucun arrêt, on ne peut pas parcourir les 1000 km.
On peut chercher dans le cas où on n'a qu'un seul arrêt:
Soit D1 la distance parcourue avant l'arrêt, et N1 le nombre de bananes disponibles au moment de l'arrêt:
N1 = 3000 - 5.D1
On sait déjà que N1 > 2000 n'est pas possible.
Si N1 > 1000, il faudra parcourir 3 fois la distance restante, soit 1000-D1, d'où, à l'arrivée:
NZ = 3000 - 5.D1 - 3(1000-D1) = -2.D1. Il n'y a pas assez de bananes.
Si N1 <= 1000, on doit parcourir 1 fois la distance restante, soit:
NZ = 3000 - 5.D1 - (1000-D1) = 2000 - 4.D1
On prend la valeur minimale de D1 qui respecte la condition N1 = 3000 - 5.D1 <= 1000, soit D1 = 400, et il reste 400 bananes.
Si maintenant, on envisage 2 arrêts, on appelle D1 et D2 les distances parcourues, et N1 et N2 le nombre de bananes.
Pour les mêmes raisons que précédemment, on doit avoir:
N1 <= 2000 et N2 <= 1000, soit:
N1 = 3000 - 5.D1
N2 = N1 - 3.D2 = 3000 - 5.D1 - 3.D2
NZ = N2 - (1000 - D1 - D2) = 3000 - 5.D1 - 3.D2 - (1000 - D1 - D2) = 2000 - 4.D1 - 2.D2.
On retrouve alors l'optimum pour D1 = 200 et D2 = 334, soit 532 bananes à l'arrivée.
Source :
_
http://forums.futura-scie[...]33-lelephant-bananes.html
_
https://www.google.com/se[...]+banane+au+kilom%C3%A8tre