Day 1 Task 1: Cluedo

Jill keresi Dr. Black gyilkosát, a helyszint és a fegyvert. 6 lehetséges gyilkos (1-től 6-ig sorszámozva), 10 lehetséges helyszin (1-től 10-ig sorszámozva) és 6 lehetséges fegyver (1-től 6-ig sorszámozva) van.

Egy lehetséges eset (de a feladatban  a nevekre nincs szükség).

Gyilkos

Helszin

Fegyver

  1. Professor Plum
  2. Miss Scarlet
  3. Colonel Mustard
  4. Mrs. White
  5. Reverend Green
  6. Mrs. Peacock
  1. Ballroom
  2. Kitchen
  3. Conservatory
  4. Dining Room
  5. Billiard Room
  6. Library
  7. Lounge
  8. Hall
  9. Study
  10. Cellar
  1. Lead pipe
  2. Dagger
  3. Candlestick
  4. Revolver
  5. Rope
  6. Spanner

Jill kérdéseket tesz fel, amelyek helyességét a segédje, Jack ellenőrzi. Egy kérdésben egyszerre kérdez rá a gyilkosra, a helyszinre és a fegyverre. Ha valamelyik nem jó, akkor Jack megad közülük egy nem jót.

Ird meg Jill Solve nevű eljárását! Az értékelő többször hivja a Solve eljárást, minden hivásra egy új eset megoldására. A Solve a Theory(M,L,W) függvényt hivja, amely az értékelőben van megvalósitva. Az M, L és W paraméterek rendre egy gyilkos, egy helyszin és egy fegyver lehetséges sorszáma legyen! Ha Jill kitalálta, akkor a visszaadott érték 0 és ekkor be kell fejeződnie a Solve eljárásnak. Ha valamelyik paraméter nem helyes, akkor az 1, 2 vagy 3 értéket adja vissza, annak megfelelően, hogy melyik paraméter volt hibás. Ha több is hibás volt, akkor közülük az egyik sorszámát adja.

Példa

Tegyük fel, hogy a 2. a gyilkos, a 3. helyen a 4. fegyverrel követte el a gyilkosságot. Ekkor a Theory alábbi hivásai adnak megoldást:

Hivás

Visszaadott érték

Magyarázat

Theory(1, 1, 1)

1, vagy 2, vagy 3

Mindhárom rossz.

Theory(3, 3, 3)

1, vagy 3

Csak a hely jó.

Theory(5, 3, 4)

1

Csak a gyilkos rossz.

Theory(2, 3, 4)

0

Mindhárom jó.

1. részfeladat [50 pont]

Minden tesztben a Solve eljárást legfeljebb 100-szor hivja, különböző bemenetekre. Minden egyes Solve hivásra ki kell találnia a megoldást legfeljebb 360 Theory(M,L,W) hivással.

2. részfeladat [50 points]

Minden tesztben a Solve eljárást legfeljebb 100-szor hivja, különböző bemenetekre. Minden egyes Solve hivásra ki kell találnia a megoldást legfeljebb 20 Theory(M,L,W) hivással.

Megvalósitás