Cerință
Bogdan are pe o foaie de hartie un șir de numere naturale nenule, numit . El s-a gândit să transforme șirul în felul următor:
- Mai întâi împarte toate elementele șirului în secvențe disjuncte pe care le notează , , ( este secvența cu elementele de la început, cea cu elementele de la final și cea cu elementele rămase în interior; fiecare dintre cele secvențe trebuie să aibă cel puțin un element). Această împărțire o face astfel încât lungimea secvenței să fie cel mult egală cu jumătate din lungimea șirului dat .
- Elimină secvența din șir. Apoi, la acest pas, secvențele și se alipesc, în această ordine, formând un nou șir.
- Așează secvența pe noul șir la o poziție aleasă astfel încât toate elementele secvenței să se poată așeza unul câte unul, consecutiv, peste elemente ale șirului rămas, începând cu poziția aleasă.
- La valorile elementelor peste care se suprapun elemente ale secvenței așezate se adună elementul corespunzător din secvență. Se obține astfel un nou șir .
Un exemplu de transformare este:
Șirul A al lui Bogdan: .
Pasul : Alege să formeze secvențele astfel: cu primele elemente , cu elementele de pe poziții de la la și cu elementele de pe poziții de la la .
Pasul : după ștergerea secvenței , obținem: .
Pasul : Aplică secvența extrasă începând cu poziția (de exemplu nu ar fi putut aplica secvența pe poziții mai mari sau egale cu 5 deoarece aceasta nu s-ar fi putut suprapune cu toate elementele peste șirul rămas):
1 2 3 3 1
1 2 3 4 2 3 4 5
Pasul 4: Șirul devine: .
Bogdan îi explică lui Cosmin regula sa de transformare și îi propune următorul joc: îi arată perechi de câte două șiruri și și, pentru fiecare pereche, îl întreabă: poți decide dacă șirul dat chiar se poate obține din șirul dat aplicând exact o dată regula descrisă? În cazul în care acest lucru este posibil se cere să identificăm și modul de obținere.
Date de intrare
Fișierul prieteni.in
conține pe prima linie un număr reprezentând numărul de perechi de șiruri pe care Bogdan i le dă ca test lui Cosmin. În continuare sunt descrise cele perechi de șiruri, pe câte linii fiecare.
Prima linie a unui grup conține valoarea n reprezentând numărul de elemente ale șirului . Pe linia a doua se află cele elemente ale șirului , în ordinea pozițiilor, de la la . Pe linia a treia se află o valoare reprezentând numărul de elemente ale șirului . Pe a patra linie se află elementele șirului în ordinea pozitiilor, de la la . Elementele aceleiași linii se dau separate prin câte un spațiu.
Date de ieșire
Fișierul prieteni.out
conține t linii, fiecare conținând rezultatul verificării unei perechi de șiruri date și , în ordinea în care apar la intrare. Dacă șirul nu poate fi obținut din șirul , linia va conține doar valoarea . În caz contrar, linia va conține valori, separate prin spatiu, astfel: 1 P L I
. Valoarea reprezintă codul de succes ( se poate obține din ). reprezintă poziția din de unde se extrage secvența. reprezintă lungimea secvenței extrase. reprezintă poziția unde începe în aplicarea secvenței. Dacă sunt mai multe variante se va afișa cea cu minim și daca și aici avem mai multe variante, cea cu minim.
Restricții și precizări
- ;
- ;
- ;
- Elementele șirurilor date sunt naturale, nenule, cel mult egale cu ;
- Pentru puncte se garantează că toate perechile din fișierul de intrare pentru care se poate obține din au proprietatea că secvența extrasă se aplică la aceeași poziție cu cea din care s-a extras.
- Pentru de puncte se garantează că toate perechile din fișierul de intrare pentru care se poate obține din au proprietatea că secvența extrasă este formată dintr-un singur element.
Exemplu
prieteni.in
2
13
1 2 3 4 1 2 3 3 1 2 3 4 5
8
1 2 4 6 5 6 5 5
12
1 2 3 4 1 2 3 3 1 2 3 4
7
1 2 4 6 5 6 3
prieteni.out
1 5 5 3
0