O pereche de șiruri de caractere și , formate doar din literele A
, B
și C
, este egalabilă dacă șirurile pot deveni egale după o transfomare constând din aplicarea unei succesiuni formate din sau mai multe operații. O operație constă din inserarea sau ștergerea din unul dintre șiruri a uneia dintre subsecvențele: AAA
, BBB
, CCC
, ABC
sau BAC
. Atât inserarea, cât și ștergerea se pot realiza de pe orice poziție. În urma unei operații este posibil ca șirul rezultat să devină vid.
Cerință
Pentru o succesiune dată de perechi de șiruri, să se determine, pentru fiecare pereche, dacă este egalabilă.
Date de intrare
Fișierul de intrare segalt.in
conține pe prima linie numărul de perechi. Pentru fiecare pereche sunt specificate cele două șiruri, pe linii diferite.
Date de ieșire
Fișierul de ieșire segalt.out
va conține linii. Pe cea de a -a linie va fi scris mesajul DA
dacă cea de a -a pereche din fișierul de intrare este egalabilă, respectiv mesajul NU
, în caz contrar.
Restricții și precizări
- lungimea maximă a unui șir (notată cu )
- Suma lungimilor șirurilor din toate perechile (notată cu ) este cel mult
# | Punctaj | Restricții |
---|---|---|
1 | 15 | și dacă perechea este egalabilă, există o transformare cu cel mult o operație |
2 | 23 | și dacă perechea este egalabilă, există o transformare cu cel mult o operație |
3 | 22 | și dacă perechea este egalabilă, există o transformare cu cel mult două operații |
4 | 40 | Fără restricții suplimentare |
Exemplu
segalt.in
2
ABC
CCC
AABBACCBCCBC
CCCCCCCCC
segalt.out
DA
NU
Explicație
Pentru prima pereche secvența ABC
din primul șir poate fi ștearsă, apoi se inserează secvența CCC
.
Pentru a doua pereche se poate demonstra că nu există nicio transformare în urma căreia șirurile să devină egale.