Palindromy
Limit pamięci: 32 MB
Słowo jest palindromem wtedy i tylko wtedy, gdy nie zmienia się, jeśli czytamy
je wspak. Palindrom jest parzysty, gdy ma dodatnią parzystą liczbę liter.
Przykładem parzystego palindromu jest słowo abaaba.
Rozkładem słowa na palindromy parzyste jest jego podział na rozłączne części, z
których każda jest palindromem parzystym.
Przykład
Rozkładami słowa:
bbaabbaabbbaaaaaaaaaaaabbbaa
na palindromy parzyste są:
bbaabb aabbbaaaaaaaaaaaabbbaa
oraz:
bb aa bb aa bb baaaaaaaaaaaab bb aa
Pierwszy rozkład zawiera najmniejszą możliwą liczbę palindromów, drugi jest
rozkładem na maksymalną możliwą liczbę palindromów parzystych. Zauważ, że słowo
może mieć wiele różnych rozkładów na palindromy parzyste, albo nie mieć żadnego.
Zadanie
Napisz program, który wczytuje słowo ze standardowego wejścia i bada, czy da
się je rozłożyć na palindromy parzyste. Jeśli nie, to zapisuje w standardowym
wyjściu tylko jeden wyraz NIE, a jeśli da się rozłożyć, to zapisuje
jego rozkłady na minimalną i maksymalną liczbę palindromów parzystych.
Wejście
Standardowe wejście zawiera jedno słowo złożone z co najmniej 1 i co najwyżej
200 małych liter alfabetu angielskiego, zapisane w jednym wierszu bez odstępów
pomiędzy literami. Zakładamy, że dane słowo jest zapisane w standardowym wejściu
poprawnie i Twój program nie musi tego sprawdzać.
Wyjście
Standardowe wyjście powinno zawierać:
- tylko jeden wyraz NIE
- albo:
- w pierwszym wierszu ciąg słów oddzielonych odstępami stanowiący jeden
rozkład danego słowa na minimalną liczbę palindromów parzystych,
- w drugim wierszu jeden rozkład danego słowa na maksymalną liczbę
palindromów parzystych.
Przykłady
Dla danych wejściowych:
bbaabbaabbbaaaaaaaaaaaabbbaa
poprawną odpowiedzią jest:
bbaabb aabbbaaaaaaaaaaaabbbaa
bb aa bb aa bb baaaaaaaaaaaab bb aa
Dla danych wejściowych:
abcde
poprawną odpowiedzią jest:
NIE
Dla danych wejściowych:
abaaba
poprawną odpowiedzią jest:
abaaba
abaaba
Autor zadania: Wojciech Rytter.