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.