Programozó versenyek

DEIK Regionális Programozó Csapatverseny, egyetemi/főiskolai kategória, 2017. december 3.

2017. december 3. 10:10 – 2017. december 3. 15:10

C — Kockarakás

Ebben a feladatban ASCII karakterek segítségével grafikus térbeli nézetet kell készíteni egy kockarakásról. A kockák m sorba és n oszlopba vannak elrendezve úgy, hogy egyes kockákon tornyokat formázva további kockák állnak. A kockasorok 1-től m-ig vannak számozva, az első sor a legtávolabbi, az m-edik sor a legközelebbi a grafikus nézetben. Az oszlopok 1-től n-ig vannak számozva, balról jobbra. Egyes kockák eltakarhatnak más kockákat, amelyek így részlegesen vagy teljesen takarásba kerülhetnek. Az alábbi ábra egyetlen kocka rajzát mutatja 6 sorban és 7 oszlopban a '+' (plusz), a '-' (mínusz), a '|' (függőleges vonal), a '/' (perjel) és a ' ' (szóköz) karakterek felhasználásával:

  +---+
 /   /|
+---+ |
|   | +
|   |/
+---+

Írjon programot, amely egy kockarakás leírása alapján elkészíti annak grafikus térbeli nézetét az ábrázoláshoz szükséges legkevesebb sorban és oszlopban! Az ábrán '.' (pont) karakterek jelöljék azokat a helyeket, amelyeket nem takar kocka!

A bemenet specifikációja

A bemenet első sora az m és n pozitív egész számokat tartalmazza (1 ≤ mn ≤ 50). A következő m sor mindegyikében n darab pozitív egész szám szerepel. Mindegyikük kisebb vagy egyenlő 50-nél, ők jelölik az egyes pozíciókban álló kockatornyok magasságát.

A kimenet specifikációja

A programja a feladat szövegében leírtak szerint jelenítse meg a kimeneten a kockarakás grafikus térbeli nézetét az ábrázoláshoz szükséges minimális területen!

1. példa bemenet

  1. 1 2
  2. 1 2
letöltés szöveges állományként

Az 1. példa bemenethez tartozó kimenet

  1. ......+---+
  2. ...../   /|
  3. ....+---+ |
  4. ..+-|   | +
  5. ./  |   |/|
  6. +---+---+ |
  7. |   |   | +
  8. |   |   |/.
  9. +---+---+..
letöltés szöveges állományként

2. példa bemenet

  1. 3 1
  2. 2
  3. 1
  4. 3
letöltés szöveges állományként

A 2. példa bemenethez tartozó kimenet

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

3. példa bemenet

  1. 2 3
  2. 2 3 2
  3. 1 2 1
letöltés szöveges állományként

A 3. példa bemenethez tartozó kimenet

  1. ........+---+....
  2. ......./   /|....
  3. ......+---+ |....
  4. ....+-|   | +---+
  5. .../  |   |/   /|
  6. ..+---+---+---+ |
  7. ..|  /   /|   | +
  8. ..| +---+ |   |/|
  9. ..+-|   | +---+ |
  10. ./  |   |/   /| +
  11. +---+---+---+ |/.
  12. |   |   |   | +..
  13. |   |   |   |/...
  14. +---+---+---+....
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.