Feladat: I.406 Korcsoport: - Nehézségi fok: -
Füzet: 2016/szeptember, 356 - 357. 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.

Különböző élhosszúságú kockákból tornyokat építünk, és azokat kívülről lefestjük egy automatával. A tornyoknak stabil felépítésűeknek kell lenniük, majd festésükkor az automata mind a négy oldalról és felülről lefesti azokat.
Rendelkezésre áll K darab kocka véletlenszerű sorrendben. A kockák élhosszai egész számok. Az automata programja szerint igyekszik minél magasabb tornyot építeni, majd befesteni a következő szabályok szerint:

A kockákat sorrendben egymás után használja föl.
Kockát olyan torony tetejére tehet, ahol az eddigi legfelső kocka nem kisebb az elhelyezendőnél.
A soron következő kockát arra a toronyra teszi, ahol a legfelső a lehető legkisebb olyan, amire még rátehető. Ha több ilyen torony van, akkor a kisebb sorszámút (amelyiket előbb kezdte el építeni) választja. Amennyiben a kocka egyikre sem tehető, akkor új tornyot kezd.
Miután a kockák elfogytak, a kész tornyokat festékszóró festi be minden oldalról és felülről, de alulról és a kockák között nem.

Rendelkezésünkre áll és a honlapunkról letölthető egy minta az automata bemenetére a kockak.txt állományban.
Az állomány első sorában K (0K1000) a kockák száma olvasható, az ezt követő K sor mindegyike az egyes kockák Mi élhosszát (1Mi50) tartalmazza.
Készítsünk programot i406 néven, amely megoldja az alábbi feladatokat.
A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írjuk a képernyőre a feladat sorszámát (például 4. feladat:). A beolvasás előtt a várt tartalomra vonatkozó üzenetet jelenítsünk meg. Az ékezet nélküli kiírás is megengedett.
1.Olvassuk be a kockak.txt állomány adatait és a következő feladatokat ezek alapján oldjuk meg.
2.Írjuk ki a képernyőre az automata által felépített tornyok számát.
3.Írjuk a képernyőre egy sorba, szóközzel elválasztva a legmagasabb tornyot alkotó kockák élhosszúságát és ezek összegét, vagyis a torony magasságát. Ha több ilyen van, akkor a legkisebb sorszámú toronyét jelenítsük meg.
4.Írjuk a képernyőre annak a toronynak a sorszámát, amelyben a legtöbb azonos élhosszúságú kocka van (több ilyen torony esetén a legkisebb sorszámút).
5.Szabályosnak nevezünk egy legalább 3 kockából álló tornyot akkor, ha a kockák oldalélei alulról felfelé haladva számtani sorozatot alkotnak. Írjuk a képernyőre a szabályos tornyok számát.
6.Kérjük be a felhasználótól egy torony sorszámát, majd írjuk ki szóközzel elválasztva egy sorba, hogy
a.mekkora területet festett be az automata a tornyon;
b.a tornyot szétszedve a kockákon összesen hány területegységet nem festett be az alsó oldalakat is figyelembe véve.

7.Írjuk a képernyőre, hogy az első torony felső szintjeiből hány kockát lehetne a legutolsó toronyra átrakni egyben, a méretre vonatkozó szabályok betartásával.

 
Példa a bemenetre:   Példa a kimenetre:   (az újsor karakterek egy részét a tömörség  kedvéért  /  jellel helyettesítettük)11   2. feladat: 3 torony   8 / 7 / 9 / 7 / 11 / 8 / 4 / 7 / 1 / 6 / 5   3. feladat: 9 8 7 6 5 35   4. feladat: 1   5. feladat: 1   6. feladat: Torony sorszama: 2   a. 1101   b. 429   7. feladat: 5   
 

Beküldendő egy tömörített i406.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ó.
Letölthető fájl: kockak.txt.