Feladat: I.202 Korcsoport: - Nehézségi fok: -
Füzet: 2009/január, 37. oldal  PDF  |  MathML 
Témakör(ök): Feladat

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 kupac kavics. Minden lépésben az összes kupacból elveszünk egy kavicsot és ezekből egy új kupacot képzünk. A kupacok sorrendje nem számít.
Például:  A kupacokban a kavicsok száma3 5 2 1 4  Következő lépésben2 4 1 3 5  

 
A lépéseket addig ismételgetjük, amíg meg nem unjuk. Mivel véges a kavicsok száma, így előbb-utóbb a kavicsok eloszlása a kupacokban ciklikussá válik.
Írjunk programot, amely a bemeneti adatállományban megadott kupacok kavicsszáma alapján megadja, hogy hányadik lépésben kezdődik az ismétlődés és mi a ciklus hossza. Az összes kavics száma nem lehet több mint 50.
A program parancssori argumentuma legyen a kupacokat leíró adatállomány neve. A fájl első sorában egy egész szám áll, amely a kupacok N számát (1N25) adja meg. Az ezt követő N db sor mindegyikében egy érték szerepel, amely a kupacok kavicsszámát adja meg.
 
PéldaBemenetKimenet   35 4    2  4  1

 
A program kimenete a képernyőre két pozitív egész szám, amely közül az első azt adja meg, hogy hányadik lépésben kezdődik egy új ciklus és a másik, hogy egy ciklus hány lépésből áll.
Beküldendő a program forráskódja (i202.pas, i202.cpp, ...), valamint a program rövid dokumentációja (i202.txt, i202.pdf, ...), amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztő környezetben fordítható.