Programozó versenyek

Magas szintű programozási nyelvek 1, egyéni verseny, 2012. április 22.

2012. április 22. 10:15 – 2012. április 22. 15:15

Olvasd-és-mondd sorozatok

Tekintsük az alábbi, egész számokból álló sorozatot:

1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, ...

Ezt a sorozatot olvasd-és-mondd sorozatnak nevezzük, 1-es kezdeti értékkel. A kezdeti érték a sorozat első eleme. A sorozat minden további elemét a megelőző elemből generáljuk az alábbi módon: csoportosítsuk az azonos számjegyek szomszédos előfordulásait, majd minden csoport esetén jelöljük két számjeggyel, hogy a csoport hány darab és milyen számjegyet tartalmaz.

A kezdeti értéket (az 1-et) például úgy olvassuk ki, hogy „egy 1-es”, amelyből megkapjuk a második elemet, az 11-et. Ezt úgy olvassuk ki, hogy „két 1-es”, amelyből megkapjuk a harmadik elemet, a 21-et. A negyedik elemet (1211) úgy olvassuk ki, hogy „egy 1-es, majd egy 2-es, majd két 1-es”, amelyből megkapjuk az ötödik elemet, az 111221-et.

Természetesen különböző kezdeti értékekből kiindulva különböző sorozatokat kapunk.

Írj programot, amely bemenetként megkap egy nemnegatív j és egy pozitív k egész számot, és a kimenetre írja a j kezdeti értékkel rendelkező olvasd-és-mondd sorozat első k elemét.

A bemenet specifikációja

Az első sor egy n pozitív egész számból áll, amely az előállítandó sorozatok számát adja meg. A következő n sor mindegyike két nemnegatív egész számot tartalmaz, j-t és k-t, amelyek egy-egy sorozatot definiálnak az előző bekezdésben leírtak szerint. Feltételezheted, hogy j számjegyeinek a száma nem haladja meg a 100-at, és nem tartalmazza ugyanannak a számjegynek 9-nél több szomszédos előfordulását.

A kimenet specifikációja

A bemeneten definiált minden olvasd-és-mondd sorozatra a programnak egyetlen sort kell előállítania a kimeneten, amely a megadott sorozat elemeit tartalmazza egy-egy szóközzel elválasztva.

Példa bemenet

  1. 5
  2. 1 8
  3. 22 6
  4. 55555333337 4
  5. 0 4
  6. 34 1
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. 1 11 21 1211 111221 312211 13112221 1113213211
  2. 22 22 22 22 22 22
  3. 55555333337 555317 35131117 131511133117
  4. 0 10 1110 3110
  5. 34
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.