NézetNyomtat

Mozgat (Megoldás)
Címkék > Feladat
Versenyek > Nemes Tihamér OKSzTV > 2002 > Második forduló > 11-13. osztály
Címkék > Hiányzó algoritmus

Mozgat

Minden szövegszerkesztővel végezhető kivágás-beszúrás művelet. Minden műveletet egy A,B,C számhármas ír le, ami azt jelenti, hogy a szöveg A-tól B-ig terjedő sorait (A-t és B-t is beleértve) kivágjuk, és beszúrjuk a C-edik sor mögé. (Az A,B és C sorszámok a művelet elvégzése előtt értendők.)

Feladat

Egy N sorból álló szövegre K-szor alkalmazunk kivágás-beszúrás műveletet. Írj programot (MOZGAT.PAS, MOZGAT.C vagy MOZGAT.CPP néven), amely kiszámítja, hogy
  • a) a szöveg első 10 sora hova került a műveletek elvégzése után;
  • b) az eredeti szöveg mely sorai kerültek az első 10 sorba a műveletek hatására.

Bemenet

A MOZGAT.BE állomány első sora két (szóközzel elválasztott) egész számot tartalmaz: az első a szöveg sorainak a száma, N (10N1000000), a második pedig a műveletek száma, K (1K1000). A további K sor mindegyikében (egy-egy szóközzel elválasztva) három egész szám van: A,B és C, amelyek egy-egy műveletet írnak le. A számokra teljesülnek a következő egyenlőtlenségek: 1A<BN, továbbá 0C<A vagy BCN. Ha C=0, akkor a kivágott szöveget az első sor elé kell beszúrni.

Kimenet

A MOZGAT.KI állomány két sorába 10-10 számot kell írni egy-egy szóközzel elválasztva. Először azoknak a szövegsoroknak a sorszámát kell felsorolni, ahová az eredeti szöveg első 10 sora került a műveletek hatására. Azután az eredeti szöveg azon sorainak a sorszámát kell felsorolni, amelyek a műveletek hatására az első 10 sorba kerültek át.

Példa

MOZGAT.BEMOZGAT.KI
1000 4 1 9 10 3 4 1 300 500 9 100 900 3805 2 3 806 807 808 809 810 115 1 10 2 3 390 391 392 393 394 395 396

Tesztadatok