Középiskolai Matematikai és Fizikai Lapok
Informatika rovattal
Kiadja a MATFUND Alapítvány
Már regisztráltál?
Új vendég vagy?

Az I. 202. feladat (2009. január)

I. 202. 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 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 (1\leN\le25) adja meg. Az ezt követő N db sor mindegyikében egy érték szerepel, amely a kupacok kavicsszámát adja meg.

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ó.

(10 pont)

A beküldési határidő 2009. február 16-án LEJÁRT.


A feladat Bolgár soliter néven ismert játék.

Megoldásokról:

Viszonylag kevés tökéletes megoldás érkezett. Többen nem olvasták el precízen a feladatot és nem vették figyelembe, hogy a kupacok sorrendje nem számít. Minden lépés után érdemes a kupacokat, illetve a kavicsok számát csökkenően rendezni. Ezzel könnyebbé válik az eddig eltárolt elrendezések között visszafelé megkeresni az egyezőt. Az első egyezés esetén feljegyezzük a lépést, hiszen ekkor kezdődik új ciklus.

Érdekes, ha a kavicsok száma "háromszögszám" (1,3,6,10,15,...), akkor a kezdeti elrendezéstől függetlenül egy hosszúságú ciklusba érkezik a játék.

Mintamegoldásként Barta János 9. osztályos tanuló (Salgótarján, Madách Imre Gimnázium) megoldását közöljük: i202.dpr

A feladat értékeléséhez használt tesztállományok: teszt.zip

Fájl neve eredmény
t0.txt 5 4
t1.txt 74 1
t2.txt 42 9
t3.txt 56 8
t4.txt 90 1
t5.txt 8 1

Statisztika:

14 dolgozat érkezett.
10 pontot kapott:Barta 111 János, Englert Péter, Kővágó Zoltán.
9 pontot kapott:Nagy 111 Miklós.
8 pontot kapott:1 versenyző.
7 pontot kapott:3 versenyző.
5 pontot kapott:1 versenyző.
3 pontot kapott:2 versenyző.
2 pontot kapott:3 versenyző.

A KöMaL 2009. januári informatika feladatai