Programozó versenyek

Magas szintű programozási nyelvek 1, egyéni verseny, 2015. április 12.

2015. április 12. 10:00 – 2015. április 12. 15:00

Dekódoló

Chico és Maria rokonok, akik más-más városban élnek. Mivel mindketten vidékiek, nagyon nehezen tudják tartani egymással a kapcsolatot. Az egyik lehetőség a kommunikációs problémájuk megoldására, hogy a szüleiken keresztül üzeneteket küldenek egymásnak (ők ugyanis gyakran látogatják egymást).

Chico és Maria viszont nem szeretnék, ha a szüleik elolvasnák az üzeneteiket, ezért úgy döntöttek, hogy titkosítják azokat. A kód nem éppen kifinomult, de ne feledjük, hogy Chico és Maria még csak gyerekek.

Az üzenet jelentése a benne lévő szavak egy-egy betűjén alapul. A dekódolt üzenetet úgy képezzük, hogy vesszük az első szó első betűjét, a második szó második betűjét stb. Ha egy szóban nincs elegendő betű, akkor a következő szót kell felhasználni. Ha például a harmadik szót vizsgáljuk, a harmadik betűjét kell vennünk, de ha csak két betűből áll, akkor a negyedik szó harmadik betűjével próbáljuk meg képezni a dekódolt szót.

Amikor egy sor végére érünk, befejezzük az aktuális szó dekódolását, és elkezdjük a következőét a következő sor első szavának első betűjével kezdve.

A feladatod, hogy dekódolj egy üzenetet Chico és Maria titkos kódja szerint.

A bemenet specifikációja

A bemenet első sora T-t, a tesztesetek számát tartalmazza (1 ≤ T ≤ 30), majd egy üres sor következik az első teszteset előtt. Minden teszteset egy üzenetet reprezentál, amely N sorból áll (1 ≤ N ≤ 100), a sorok pedig M szóból (1 ≤ M ≤ 30). Az egy sorban szereplő szavakat egy vagy több fehér karakter választja el egymástól. A szavakat az angol ábécé nagy- és kisbetűi (AZ és az) alkotják, és legfeljebb 30 betűből állnak. A bemeneten csak alfabetikus és fehér karakterek szerepelnek. Minden üzenetet egy üres sor követ.

A kimenet specifikációja

Minden tesztesetre először a teszteset sorszámát kell a kimenetre írni, majd a dekódolt üzenet egyes szavait, soronként egyet (a pontos formátumért lásd a példa kimenetet). Az egymást követő tesztesetek közé egy-egy üres sort is ki kell írni.

Példa bemenet

  1. 2
  2. Hey good lawyer
  3. as I previously previewed
  4. yam does a soup
  5. First I give money to Teresa
  6. after I inform dad of
  7. your horrible soup
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. Case #1:
  2. How
  3. are
  4. you
  5. Case #2:
  6. Fine
  7. and
  8. you
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.