Informatika gyűjtemény

Egy szinttel feljebb Mozgat

2004050607080910

NézetNyomtat

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 ($10\leq N\leq 1000000$), a második pedig a műveletek száma, K ($1\leq K\leq 1000$). 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: $1\leq A< B\leq N$, továbbá $0\leq C< A$ vagy $B\leq C\leq N$. 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