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:
bbaabbaabbbaaaaaaaaaaaabbbaana palindromy parzyste są:
bbaabb aabbbaaaaaaaaaaaabbbaaoraz:
bb aa bb aa bb baaaaaaaaaaaab bb aaPierwszy 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.