Segalt

Time limit: 0.1s Memory limit: 32MB Input: segalt.in Output: segalt.out

O pereche de șiruri de caractere SS și TT, 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 00 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 QQ 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 QQ linii. Pe cea de a ii-a linie va fi scris mesajul DA dacă cea de a ii-a pereche din fișierul de intrare este egalabilă, respectiv mesajul NU, în caz contrar.

Restricții și precizări

  • 1Q10 0001 \leq Q \leq 10 \ 000
  • 11 \leq lungimea maximă a unui șir (notată cu NmaxN_{max}) 175 000\leq 175 \ 000
  • Suma lungimilor șirurilor din toate perechile (notată cu SS) este cel mult 350 000350 \ 000
# Punctaj Restricții
1 15 S3 000S ≤ 3 \ 000 și dacă perechea este egalabilă, există o transformare cu cel mult o operație
2 23 S>3 000S > 3 \ 000 și dacă perechea este egalabilă, există o transformare cu cel mult o operație
3 22 Nmax8,S800Nmax \leq 8, S \leq 800 ș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.

Log in or sign up to be able to send submissions!