In the event of technical difficulties with Szkopuł, please contact us via email at [email protected].
If you would like to talk about tasks, solutions or technical problems, please visit our Discord servers. They are moderated by the community, but members of the support team are also active there.
Dane są dwa słowa i złożone z liter a i b. Naszym celem jest przekształcić słowo w słowo . Mamy w tym celu do dyspozycji następującą operację zamiany: wybieramy dwa rozłączne fragmenty ab i ba w pierwszym słowie i zamieniamy je miejscami. Czy, wykonując skończoną liczbę takich operacji, możemy przekształcić w ?
Pierwszy wiersz wejścia zawiera jedną liczbę całkowitą (), oznaczającą długość słów. Każdy z dwóch następnych wierszy zawiera ciąg złożony z znaków a i/lub b. Pierwszy wiersz opisuje słowo , a drugi - słowo . Możesz założyć, że słowa te będą różne.
W pierwszym wierszu wyjścia powinno znaleźć się jedno słowo TAK lub NIE, oznaczające, czy słowo można przekształcić w słowo , wykonując jedynie operacje zamiany.
Jeśli odpowiedź jest twierdząca oraz , Twój program powinien także wypisać przykładowy ciąg operacji prowadzących do celu. Pierwszy wiersz tego opisu powinien zawierać jedną liczbę całkowitą (), oznaczającą liczbę operacji. Każdy z kolejnych wierszy powinien zawierać dwie liczby całkowite , (), oznaczające pozycje pierwszych liter zamienianych fragmentów ab (odpowiednio ) i ba (odpowiednio ).
Jeśli istnieje wiele możliwych rozwiązań, Twój program powinien wypisać jakiekolwiek z nich. W szczególności Twoje rozwiązanie nie musi minimalizować liczby operacji, tj. liczby .
Dla danych wejściowych:
6 aabbaa baaaab
poprawną odpowiedzią jest:
TAK 2 2 4 1 5
natomiast dla danych:
6 aaabbb ababab
poprawną odpowiedzią jest:
NIE
Autor zadania: Adam Polak.