RiverCrossing
By Gerrit Bes
1 Inleiding
Gegeven zijn N genummerde mannetjes , een rivier een brug en een fles jenever.
De bedoeling is dat alle mannetjes over de brug naar de overkant lopen.
Daarbij moeten de volgende regels in acht worden genomen :
a) als er mannetjes op de brug lopen dan hebben zij de fles jenever bij zich.
b) Er mogen hoogstens 2 mannetjes tegelijk over de brug lopen.
c) De snelheid waarmee 1 of 2 mannetjes over de brug lopen is de snelheid van het
langzaamste mannetje.
d) Het mannetje met rugnummer k kan in k minuten over de brug lopen.
2 Opdracht
Gegeven wordt het aantal mannetjes dat over de brug moet lopen.
U berekent de minimale tijd waarin dit mogelijk is.
Hiervoor moet de methode int getTime(int nrOfMannetjes) worden geimplementeerd.
Voor ongeldige waarden van nrOfMannetjes geeft deze methode 0 terug.
Voor geldige waarden geeft de methode terug de snelste tijd waarbinnen de oversteek mogelijk is.
3 Voorbeeld
Op de linker oever staan 3 mannetjes.
mannetje 1 kan in 1 minuut oversteken
mannetje 2 in 2 minuten
en mannetje 3 in drie minuten.
de snelste oversteek is 6 minuten namelijk
oversteek tijd
1 --(1,3)--> 3
2 <--(1)---- 1
3 --(1,2)--> 2
----------------------------------
totaal 6 minuten
Bij 4 mannetjes wordt het al stukken moeilijker
het blijkt dat dit in 11 minuten kan
4 Tips
- Voor het teruglopen kan altijd het snelste mannetje worden genomen die terug kan lopen.
- Voor het heenlopen is het gunstig om het tijdsverschil tussen 2 mannetjes die tegelijk
oversteken zo klein mogelijk te houden. Helaas kan dit voor de beste oplossing niet voor
alle paartjes.
- Mochten je analytische gaven op dit moment niet optimaal zijn, kijk dan naar HET PATROON.
- Deze opgave heeft een Verborgen Testset die alleen wordt uitgevoerd bij het inleveren (!!).
Test case 1 : Invalid value #1
Solve the Rivercrossing problem with -1 mannetjes and a bottle of genever.
Expected result 0 minutes.
Test case 2 : Invalid value #2
Solve the Rivercrossing problem with 0 mannetjes and a bottle of genever.
Expected result 0 minutes.
Test case 3 : One across.
Solve the Rivercrossing problem with 1 mannetjes and a bottle of genever.
Expected result 1 minutes.
Test case 4 : Two across.
Solve the Rivercrossing problem with 2 mannetjes and a bottle of genever.
Expected result 2 minutes.
Test case 5 : Three across.
Solve the Rivercrossing problem with 3 mannetjes and a bottle of genever.
Expected result 6 minutes.
Test case 6 : Four across.
Solve the Rivercrossing problem with 4 mannetjes and a bottle of genever.
Expected result 11 minutes.
Test case 7 : Five across.
Solve the Rivercrossing problem with 5 mannetjes and a bottle of genever.
Expected result 16 minutes.
Test case 8 : Six across.
Solve the Rivercrossing problem with 6 mannetjes and a bottle of genever.
Expected result 22 minutes.
Test case 9 : 7 across.
Solve the Rivercrossing problem with 7 mannetjes and a bottle of genever.
Expected result 28 minutes.
Test case 10 : Fifteen across.
Solve the Rivercrossing problem with 15 mannetjes and a bottle of genever.
Expected result 96 minutes.
Test case 11 : Twenty (hik) five.
Solve the Rivercrossing problem with 25 mannetjes and a bottle of genever.
Expected result 226 minutes.