Programozó versenyek

Magas szintű programozási nyelvek 1, 2015. december 21., H8 ZH

2015. december 21. 8:15 – 2015. december 21. 11:45

Csigavonalban 1

Írjon egy programot, amely első parancssori argumentumaként megkapja egy szöveges állomány nevét (elérési útját)! Az állomány soraiban pozitív egész számpárok vannak, a két számot egymástól pontosan egy szóköz karakter választja el egymástól. A két szám egy mátrix sorainak (1 ≤ n ≤ 30) és oszlopainak (1 ≤ m ≤ 30) a számát adja meg, ebben a sorrendben.

Az ön feladata annak meghatározása, hogy egy tetszőleges n × m-es mátrix csigavonalban történő bejárása során az elemeket milyen sorrendben érintjük. A mátrix bal felső sarkából elindulva először a mátrix első sorát járjuk végig, majd elérve a sor végét, jobbra fordulunk, és végigjárjuk az utolsó oszlopot. A jobb alsó cella elérésekor újra jobbra fordulunk, és végigjárjuk az utolsó sort az első oszlop felé haladva. Elérve a mátrix bal alsó celláját, újabb jobbkanyarral már az első oszlop elemei következnek, egészen addig, míg el nem érjük a kiindulópontot (a bal felső sarkot). Ekkor azonban egy újabb jobbra kanyarodással elindulunk az eddig még be nem járt terület legfelső sorában, és az előzőekben leírtakat ismételgetve ezt mindaddig csináljuk, amíg a mátrix összes celláját nem érintettük.

A mátrix bejárását a standard kimeneten kell megjeleníteni. Minden mátrix esetén n + 1 sort kell a kimenetre írni. Az első n sor mindegyikében m darab számnak kell szerepelnie, a számok közé pontosan egy darab szóköz karaktert írva. A sorok utolsó száma után nem állhat szóköz karakter, azt a sort lezáró soremelés karakternek kell követnie. A kiírt számok az egyes cellák elérésének a sorrendjét kell, hogy meghatározzák. A bal felső (kiindulási) cella értéke 1-es legyen! Az (n + 1). sorba semmit sem kell írni, az egy üres sor legyen!

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

  1. 4 3
  2. 7 8
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. 1 2 3
  2. 10 11 4
  3. 9 12 5
  4. 8 7 6
  5. 1 2 3 4 5 6 7 8
  6. 26 27 28 29 30 31 32 9
  7. 25 44 45 46 47 48 33 10
  8. 24 43 54 55 56 49 34 11
  9. 23 42 53 52 51 50 35 12
  10. 22 41 40 39 38 37 36 13
  11. 21 20 19 18 17 16 15 14
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.