Se consideră două șiruri de caractere și , ambele șiruri având același număr de caractere.
Asupra șirurilor se aplică următorul algoritm:
- șirul se permută circular cu poziții spre stânga
- din cele două șiruri se elimină caracterele care coincid din punct de vedere al poziției și valorilor
Algoritmul se oprește când fie ambele șiruri devin vide, fie șirurile nu mai au caractere comune. Valoarea pentru fiecare pas reprezintă al -lea număr prim din mulțimea numerelor prime.
Cerinţă
Dându-se și , să se genereze șirurile și , ambele având lungimea , astfel încât numărul de repetări ale algoritmului aplicat celor două șiruri să fie .
Date de intrare
Fişierul de intrare movedel.in
conţine pe prima linie valorile și .
Date de ieșire
În fişierul de ieşire movedel.out
se vor scrie șirurile de caractere și de lungime , fiecare pe câte un rând.
Restricții și precizări
- Șirurile trebuie să conțină doar litere mici ale alfabetului englez.
- În cazul în care algoritmul efectuează cel puțin repetări pentru șirurile afișate, se va obține punctajul maxim pentru test. În caz contrar se vor obține puncte pe test, unde este numărul de repetări ale algoritmului (prin se înțelege partea întreagă a numărului ).
- Se garantează că există soluție pentru datele de test:
Testul | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Exemplul 1
movedel.in
3 5
movedel.out
abc
cba
Explicație
Prima aplicare a algoritmului:
cab
- după permutarea spre stânga cu poziții ( - primul număr prim), după eliminarea caracterelor comune, cele două șiruri vor fi:
ab
ba
A doua aplicare a algoritmului:
ba
- după permutarea spre stânga cu poziții ( – al doilea număr prim), după eliminarea caracterelor comune, cele două șiruri devin vide, algoritmul încheindu-se.
Astfel se obțin puncte pentru acest test
Exemplul 2
movedel.in
5 5
movedel.out
abcde
edabc
Explicație
Pentru șirurile găsite, algoritmul se încheie după de etape.
Astfel se obțin puncte