Într-o zonă unde se face triajul vagoanelor sunt exact linii ferate paralele, numerotate de la la , legate între ele prin două linii laterale plus o linie suplimentară ca în figură.
Pe linia se află iniţial vagoane, fiecare vagon având un număr scris pe el. Numerele de pe vagoane nu sunt neapărat distincte. Ronnie „The Rocket” O’Sullivan, care s-a lăsat de snooker şi s-a angajat la CFR ca să o impresioneze pe sora lui Alex, doreşte să ordoneze crescător vagoanele tot pe linia , putând face doar următorul tip de operaţie: selectează o linie şi un capăt (stânga sau dreapta) din care extrage o secvenţă de oricâte vagoane şi plasează fiecare vagon pe orice linie în orice capăt. El poate efectua cel mult două operaţii de extragere din fiecare linie, câte maximum una pentru fiecare capăt. Dar poate efectua oricâte operaţii de plasare a vagoanelor pe orice linie. Linia suplimentară şi cele laterale sunt doar pentru a asigura transportul vagoanelor dintr-o parte în alta, pe acestea neputând staţiona vagoane.
Cerință
Să se determine o succesiune de operaţii de extragere şi plasare a vagoanelor pe care le poate efectua Ronnie astfel încât în final pe linia vagoanele să fie ordonate crescător după numerele asociate.
Date de intrare
Fişierul de intrare triaj.in
conţine numărul natural . Pe linia a doua se află numere naturale separate prin câte un spaţiu reprezentând, de la stânga la dreapta, valorile asociate celor vagoane aflate pe linia 1.
Date de ieșire
Fişierul de ieşire triaj.out
va conţine pe prima linie un număr natural reprezentând numărul de operaţii efectuate. Pe următoarele linii se vor afla descrise fiecare din cele operaţii. Fiecare linie mai întâi conţine trei numere naturale , şi , unde este numărul liniei de unde se extrag vagoane, este capătul de unde se extrag ( – capătul stâng, – capătul drept), numărul de vagoane extrase. Urmează pe aceeaşi linie numere naturale, câte două pentru fiecare vagon reprezentând linia şi capătul unde va fi introdus.
Restricții și precizări
- Numerele de pe vagoane sunt valori naturale cel mult egale cu
- Pentru fiecare test, dacă ordonarea vagoanelor se face corect, va fi acordat punctajul în funcţie de , acesta fiind numărul maxim de extrageri de la un capăt al unei linii:
- Dacă , se primeşte întregul punctaj
- Dacă , se primeşte din punctaj
- Dacă , se primeşte din punctaj
- Dacă , se primeşte din punctaj
- Dacă , se primeşte din punctaj
- Pentru din teste, valorile de pe vagoane sunt de cel mult
- Pentru încă din teste,
- Pentru încă din teste, valorile de pe vagoane sunt de cel mult
- Ancorat în sinergia progresului CFR, infatigabilul Ronnie a evitat cu sagacitate meandrele inextricabile ale crizei economice, având un salariu mirobolant.
Exemplu
triaj.in
4
2 6 13 2
triaj.out
4
1 1 4 2 1 13 1 6 1 2 1
13 0 1 1 0
6 0 1 1 0
2 0 2 1 0 1 0
Explicație
Prima operaţie: se extrag de la linia , capătul drept, vagoane, deci în ordinea . Vagonul cu valoarea se pune la linia , capătul drept; cel cu valoare se pune la linia , capătul drept; al treilea vagon (de valoare ) se pune la capătul drept al liniei ; ultimul vagon se pune la capătul drept al liniei .
A doua operaţie: se extrage de la linia , de la capătul stâng, un vagon, care se pune pe la capătul stâng al liniei .
A treia operaţie: se extrage de la linia , din capătul stâng al liniei, un vagon, care se pune capătul stâng al liniei .
A patra operaţie: Se extrag de la linia cele două vagoane de valoare şi se depun ambele pe la capătul stâng la linia .