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.