Programozó versenyek

DEIK Regionális Programozó Csapatverseny, egyetemi kategória, 2023. december 3.

2023. december 3. 10:00 – 2023. december 3. 15:30

Téglalapok

Bár gépelni mindenki ügyesen és gyorsan tud, nem szabad elfeledkezni a kézügyességünk fejlesztésének egyéb módszereiről sem. Ebben a feladatban mintegy gyakorlásként ollót kell ragadnunk és téglalapokat kell miszlikbe aprítanunk.
A feladat célja, hogy egy +,-, illetve | karakterekből kirajzolt téglalapot szétvágjunk a "függőleges" és "vízszintes" vonalak mentén, majd kiírjuk a képernyőre az összes így kapott kisebb sokszög területét csökkenő sorrendben. Fontos megjegyzés, hogy a vágásokat minden esetben addig kell folytatni amíg a kapott sokszögek egyike sem vágható már tovább és ezen felbonthatatlan sokszögek területét kell kiírni. Segítségként a feladat összes bemenete úgy készült, hogy az összes így kapott alakzat négy-, vagy hatszög.

Input

Az input három részből áll:

  • Az első sor egy n pozitív egész mely a kiindulási téglalap szélességét adja meg.
  • A második sor egy m pozitív egész mely a kiindulási téglalap magasságát adja meg.
  • A következő n sor mindegyike m karaktert tartalmaz és a kiindulási téglalapot írja le. A függőleges oldalakat a - karakterekkel szimbolizáljuk (például -------), a vízszintes odalakat az egymás alatti | karakterekkel, míg az elágazások (pl. csúcsoknál) a + karakterrel vannak jelölve (ld. a mellékelt példát). A kitöltő karakter a szóköz.

Output

A kimenet egyetlen sor mely a tovább nem vágható sokszögek területeit tartalmazza csökkenő sorrendben, szóközzel elválasztva. Minden elkészült sokszög területe a "belsejében" lévő szóköz karakterek száma.

Megkötések

  • n és m értéke legfeljebb 100.
  • a feladatban szereplő "kis" sokszögek oldalhosszai legalább 3 egység hosszúak, így két + jel között mindig szerepel legalább egy -, vagy |.
  • a kezdeti téglalapban nincsenek "kivágandó lyukak", azaz az összes sokszög kapcsolódik egymáshoz.

Példa

Input:
  1. 10
  2. 11
  3. +-+-+----+
  4. | | |    |
  5. | | |    |
  6. | | |    |
  7. +-+-+    |
  8. | |      |
  9. | |      |
  10. | |      |
  11. | |      |
  12. | |      |
  13. +-+------+
letöltés szöveges állományként Output:
  1. 46 5 3 3
letöltés szöveges állományként

Magyarázat

  1. +-+ x 2 (A=3)
  2. | |
  3. | |
  4. | |
  5. +-+
  6. +-+ x 1 (A=5)
  7. | |
  8. | |
  9. | |
  10. | |
  11. | |
  12. +-+
  13.   +----+ x 1 (A=46)
  14.   |    |
  15.   |    |
  16.   |    |
  17. +-+    |
  18. |      |
  19. |      |
  20. |      |
  21. |      |
  22. |      |
  23. +------+
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2024.09.30.