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. Adott néhány, kezdetben színültig töltött, ismert térfogatú edény. Egy lépésben az alábbiak egyikét tehetjük:
| egy edény teljes tartalmát kiöntjük, |
| egy edényt újra színültig töltünk (akárhány alkalommal), |
| egy edényből annyit töltünk át egy másik edénybe, hogy utóbbi színültig megteljen, |
| egy edényből annyit töltünk át egy másik edénybe, hogy előbbi kiürüljön (de az utóbbi nem csordulhat túl). |
Írjunk programot, mely meghatározza, hogy a fenti lépések ismétlésével ‐ tehát pontosan ‐ kimérhető-e, és ha igen, hogyan egy kívánt folyadékmennyiség. A program az adatokat a standard bemenetről olvassa, az eredményt a standard kimenetre írja. A bemenet első sorában két, szóközzel elválasztott egész szám, az edények száma, illetve a kimérendő folyadékmennyiség szerepel. Az ezt követő sorban rendre egy-egy egész szám áll, az -edik sorban az -edik edény űrtartalma. A kimenet első sorába, ha a kívánt folyadékmennyiség előállítható valamelyik edényben, akkor az ehhez minimálisan szükséges lépések száma, egyébként ,,'' kerüljön. Ha a folyadékmennyiség kimérhető, akkor az ezt követő sor mindegyike két, szóközzel elválasztott számot tartalmazzon: az első számérték a forrásedény, a második a céledény sorszáma, illetve szám helyett ,,*'' karakter, ha az első vagy második típusú lépést végeztük. (A ,,*'' karakter lényegében egy végtelen kapacitású edényt szimbolizál.) Több megoldás esetén bármelyik megadható.
Beküldendő a feladat megoldását tartalmazó forrás és projektállományok (az s48.exe és más, a fordító által generált kiegészítő állományok nélkül), valamint a megoldás menetét bemutató dokumentáció egy tömörített mappában (s48.zip). |