Se consideră două șiruri de caractere A
și B
, ambele șiruri având același număr de caractere.
Asupra șirurilor se aplică următorul algoritm:
- șirul
A
se permută circular cuk
i
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 k
i
pentru fiecare pas i
reprezintă al i
-lea număr prim din mulțimea numerelor prime.
Cerința
Dându-se N
și M
, să se genereze șirurile A
și B
, ambele având lungimea N
, astfel încât numărul de repetări ale algoritmului aplicat celor două șiruri să fie M
.
Date de intrare
Fișierul de intrare movedel.in
conține pe prima linie valorile N
și M
.
Date de ieșire
În fişierul de ieşire movedel.out
se vor scrie șirurile de caractere A
și B
de lungime N
, 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
M
repetări pentru șirurile afișate, se va obține punctajul maxim pentru test. În caz contrar se vor obține[X/M*10]
puncte pe test, undeX
este numărul de repetări ale algoritmului (prin[X/M]
se înțelege partea întreagă a număruluiX/M
). - Se garantează că există soluție pentru datele de test:
Testul 0 1 2 3 4 5 6 7 8 9 N 23 23 50 100 50 100 500 1000 1550 2000 M 50 107 250 160 100 700 1500 8000 12000 16000
Exemplul 1
movedel.in
3 5
movedel.out
abc cba
Explicație
Prima aplicare a algoritmului:
cab
– după permutarea spre stânga cu 2
poziții (2
– 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 3
poziții (3
– al doilea număr prim), după eliminarea caracterelor comune, cele două șiruri devin vide, algoritmul încheindu-se.
Astfel se obțin [2/5*10]=4
puncte pentru acest test
Exemplul 2
movedel.in
5 5
movedel.out
abcde edabc
Explicație
Pentru șirurile găsite, algoritmul se încheie după 20
de etape.
Astfel se obțin 10
puncte.