Programozó versenyek

Magas szintű programozási nyelvek 2, 2016. május 17., K18 ZH

2016. május 17. 18:05 – 2016. május 17. 19:50

Csúszómászók (C#)

Írjon programot, amelynek első parancssori argumentuma egy szöveges állomány neve!

A program a szöveges állományból össze-vissza tekergőző, ámde önmaguk és más kígyók testét a tekergőzés közepette soha nem érintő kígyók leírását tartalmazó blokkokat olvas be. Egy blokk a következőképpen néz ki: az első sor két egész számot tartalmaz, a kígyókat magában foglaló téglalap alakú mátrix sorainak (n) és oszlopainak (m) számát, ahol 3 ≤ n ≤ 40 és 3 ≤ m ≤ 40. A következő n sor mindegyikében m darab karakter található, amelyek egy téglalap alakú, a kígyók alakját teljes egészében magában foglaló mátrix egyes elemeit jelképezik. A mátrixban 'O' (nagy O betű) jelzi a kígyók fejét, 'X' (nagy X betű) karakterek jelzik a kígyók testét, míg azokon a helyeken, ahol nincsen semmilyen része sem egy kígyónak, '.' (pont) karakterek szerepelnek. Minden kígyó teste összefüggő, azaz – a feje és a legeslegvégét jelző 'X' karakter kivételével – mindegyik eleme pontosan két másik kígyórésszel szomszédos jobbról, balról, felülről vagy alulról (lásd a példa bemenetet).

A program minden blokk esetén határozza meg és írja a standard kimenetre külön sorban, hogy összesen hány kígyó található az egyes blokkokban, illetve hosszuk szerint csoportosítva, a hosszok növekvő sorrendjében is adja meg a kígyók darabszámát a példa kimenetben látható formában!

Példa állomány (sample.txt)

  1. 8 20
  2. XXXXXXX.......XXXXXX
  3. X.....X.......X....X
  4. X.....X.......X....X
  5. X.OXXXX.......XXXX.X
  6. X.......XXO.X......X
  7. X..XXXX.X...X.XO...X
  8. X..X....X...X.X....X
  9. X..O....XXXXX.XXXXXX
  10. 9 20
  11. .OXX..............O.
  12. ...........OXXX...X.
  13. .O............X...X.
  14. XX..O.............XX
  15. X...X.....OXXX..X...
  16. X...X........X..X...
  17. .............XXXX...
  18. OXX.................
  19. ..XX........XXO.....
letöltés szöveges állományként

Parancssori argumentumok

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

A futtatás eredménye a standard kimeneten

  1. 4 6:1 13:1 21:1 27:1
  2. 8 3:3 5:4 11:1
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.