Programozó versenyek

Magas szintű programozási nyelvek 1, 2016. május 18., Sz10 ZH

2016. május 18. 10:05 – 2016. május 18. 11:50

Marokkó

Írjon programot, amely parancssori argumentumként megkapja egy szöveges állomány nevét! A szöveges állomány a marokkó játék egy-egy állását leíró blokkok sorozatát tartalmazza. A marokkó játékban pálcikákat szórnak egy asztal lapjára, amelyeket aztán a játékosoknak anélkül kell egyesével eltávolítani egymás hegyéről-hátáról, hogy az asztallapon maradó pálcikák megmozdulnának.

A blokkok első sora két egész számot tartalmaz, az asztallap szélességét (sz) és hosszúságát (h), ahol 3 ≤ sz ≤ 40 és 3 ≤ h ≤ 40. A következő h sor mindegyike egy sz hosszú sztringet tartalmaz, ezek a sorok írják le az asztallap felülnézeti képét. Az asztallapon lévő pálcikák az asztallap széleivel párhuzamosan fekszenek egymáson, egymást kizárólag merőlegesen keresztezik, a végeik sehol nem fedik át egymást, és – érdekes módon – az egymás közelében elhelyezkedő pálcikák is úgy helyezkednek el, hogy jól meg lehet őket különböztetni egymástól a felülnézeti képen. A pálcikák két végét 'O' (nagy O), a két vég közötti pálcikarészeket pedig 'X' (nagy X) karakterek jelölik (lásd a példa állományt). Az asztalnak azokat a részeit, ahol nincsen pálcika, '.' (pont) karakterek szimbolizálják.

A program minden blokk esetén határozza meg és írja a standard kimenetre külön sorban, hogy mekkora az asztallapon lévő leghosszabb pálcika hossza! A pálcika hosszába természetesen bele kell számolni a két végét és a végek közötti pálcikarészeket.

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

  1. 5 3
  2. .O...
  3. OXXXO
  4. .O...
  5. 7 6
  6. .O.OXXO
  7. .X.....
  8. .X..O..
  9. OXXXXO.
  10. .O..X..
  11. ....O..
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. 5
  2. 6
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.