Feladat: I/S.11 Korcsoport: - Nehézségi fok: -
Füzet: 2016/október, 423. oldal  PDF  |  MathML 

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

Van N golyónk, ebből N-1 egyforma anyagú, egy golyó pedig különböző. Ránézésre nem tudjuk őket megkülönböztetni, viszont van egy elemző gépünk, ami úgy működik, hogy kiválasztunk K darab golyót (0<KN) és a géppel egy elemzés elvégzése után megtudjuk, hogy a különböző golyó a kiválasztott K darab golyó között van-e. Minden lehetséges K-ra tudjuk a vizsgálat idejét, vagyis hogy hány percig tart pontosan K darab golyót megvizsgálni a géppel. Írjunk programot, ami kiszámítja, hogy mi az a legrövidebb időtartam, ami alatt (megfelelő stratégiát követve) meg lehet találni a különböző golyót.
Bemenet: a standard bemenet első sora a golyók N számát tartalmazza. A második sor N egész számot tartalmaz, a K-adik szám (L[K]) a K darab golyó megmérésének ideje percben (0<KN). A mérési idők a golyók darabszáma szerint nemcsökkenő sorozatot alkotnak.
Kimenet: a standard kimenet első és egyetlen sora tartalmazzon egy egész számot, a különböző golyó megtalálásához szükséges legrövidebb időt percben.
Korlátok: 1N1000; L[i]L[i+1] minden i-re, ahol 0<i<N; L[N]106.

 
Bemenet  Kimenet  8 / 1 1 2 2 3 3 5 84   
 

Magyarázat: eredetileg 8 ,,jelöltünk'' van. Megvizsgálunk 4 golyót, ezzel marad 4 jelölt. Ebből megvizsgálunk 2-t, ezután marad 2 jelölt, ezek közül az egyiket megvizsgáljuk. Költség: 2+1+1=4.
Pontozás és korlátok: a programhoz mellékelt, a helyes megoldás elvét tömören, de érthetően leíró dokumentáció 1 pontot ér. A programra akkor kapható meg a további 9 pont, ha bármilyen hibátlan bemenetet képes 1 mp alatt megoldani a fenti korlátoknak megfelelően.
Beküldendő egy tömörített is11.zip állományban a program forráskódja és rövid dokumentációja, amely megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható.