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. 409. feladat (2016. október)

I. 409. A Tóték Zrt. különböző méretű, téglatest alakú dobozok készítésével foglalkozik. A dobozok mindegyik oldaléle centiméterben mérve pozitív egész szám. A dobozokat nem lehet szétszedni, de könnyen egymásba pakolhatók, ha a kisebbik doboz megfelelő oldalélei kisebbek a nagyobbik doboz megfelelő oldaléleinél.

Egy futószalagon egymás után helyezkednek el a műhely gyártósoráról érkező dobozok. A cég alkalmazottja az elárusító helyre történő szállítás előtt igyekszik úgy egymásba helyezni a dobozokat, hogy azok minél kevesebb helyet foglaljanak el. Módszere a következő: elindul a futószalag elejétől, és megnézi, hogy a második doboz egymásba helyezhető-e az elsővel. Ha igen, akkor a nagyobbikba beleteszi a kisebbiket, és ezután az így keletkező kétdobozos doboz lesz az első kettő helyén, és most a kezdetben harmadik helyen álló dobozt veti össze az előbb keletkezett dupla dobozzal. Ha ezek is egymásba helyezhetők – akár úgy, hogy az új doboz lesz középen – akkor elvégzi a dobozolást. Ha az első két doboz nem helyezhető egymásba, akkor szintén a harmadik dobozt veti össze az előtte lévővel, ami most a második, és egymásba helyezi őket, ha lehet. Ugyanígy jár el a következő dobozzal, majd a rá következővel, és így tovább az összessel. Vagyis minden esetben egy dobozt próbál összevonni a közvetlenül előtte lévő másik dobozzal vagy dobozcsoporttal.

Segítsünk az alkalmazottnak elvégezni a dobozolást! Készítsünk programot, amely a szalagon lévő dobozok méretei alapján megadja, hogy milyen egymásba helyezés alakítható ki a fenti módszerrel. A standard bemenet első sorában a szalagon érkező dobozok száma található. A bemenet minden további sorában három pozitív egész adja meg az egymás után jövő dobozok három oldalélének nagyságát centiméterben. A standard kimenetre írjuk a dobozolás után kialakított helyzetet: az első sorba a futószalagon most látható dobozok darabszámát, majd az utána következő sorok mindegyikébe írjuk az egyedül álló vagy egymásba ágyazott dobozok eredeti elhelyezkedés szerinti sorszámát. Amennyiben a külső dobozban vannak dobozok, akkor azok sorszáma méret szerint csökkenő sorrendben legyen fölsorolva az adott sorban.

Példaként nézzük meg a következő be- és kimenetet, ahol a tömörség kedvéért a sorvége jelek egy részét / jellel helyettesítettük:

A futószalagon legalább 2, de legföljebb 200 doboz található, melyek mindegyikének mindhárom oldaléle centiméterben mérve 1 és 100 közötti pozitív egész.

Beküldendő egy tömörített i409.zip állományban a program forráskódja, valamint a program rövid dokumentációja, amely tartalmazza a megoldás vázlatos leírását, és megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható.

(10 pont)

A beküldési határidő 2016. november 10-én LEJÁRT.


Mintamegoldásként Békési Péter, 9. évfolyamos zalaegerszegi versenyző (i409bpdoku.pdf, i409bp.vb), és Kis Lázár Bence 11. évfolyamos dunaszerdahelyi (i409klbdoku.pdf, i409klb.cpp) versenyző munkáit adjuk közre.


Statisztika:

10 dolgozat érkezett.
10 pontot kapott:Békési Péter, Horváth 237 Lili, Kis Lázár Bence, Kovács 246 Benedek, Papatyi Dániel, Rittgasszer Ákos, Szakali Benedek, Tersztenyák Balázs.
8 pontot kapott:1 versenyző.
7 pontot kapott:1 versenyző.

A KöMaL 2016. októberi informatika feladatai