Programozó versenyek

Magas szintű programozási nyelvek 1, 2016. január 5., K8 ZH

2016. január 5. 8:05 – 2016. január 5. 11:35

Csigavonalban 3

Í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 alsó sarkából elindulva először a mátrix utolsó sorát járjuk végig, majd elérve a sor végét, balra fordulunk, és végigjárjuk az utolsó oszlopot. A jobb felső cella elérésekor újra balra fordulunk, és végigjárjuk az első sort az első oszlop felé haladva. Elérve a mátrix bal felső celláját, újabb balkanyarral már az első oszlop elemei következnek, egészen addig, míg el nem érjük a kiindulópontot (a bal alsó sarkot). Ekkor azonban egy újabb balra kanyarodással elindulunk az eddig még be nem járt terület legalsó 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 alsó (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. 8 7 6
  2. 9 12 5
  3. 10 11 4
  4. 1 2 3
  5. 21 20 19 18 17 16 15 14
  6. 22 41 40 39 38 37 36 13
  7. 23 42 53 52 51 50 35 12
  8. 24 43 54 55 56 49 34 11
  9. 25 44 45 46 47 48 33 10
  10. 26 27 28 29 30 31 32 9
  11. 1 2 3 4 5 6 7 8
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.