II Olimpiada Informatyczna 1994/95
|
Zadanie: PAL
|
Autor: Wojciech Rytter
|
Zawody I stopnia |
Plik źródłowy: | PAL.??? (np. pas, c, cpp) |
Plik wykonywalny: | PAL.exe |
Plik wejściowy: | PAL.in |
Plik wyjściowy: | PAL.out |
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.
bbaabbaabbbaaaaaaaaaaaabbbaa
twój program powinien utworzyć następujący plik PAL.OUT:
bbaabb aabbbaaaaaaaaaaaabbbaa bb aa bb aa bb baaaaaaaaaaaab bb aa
Dla pliku PAL.IN:
abcde
twój program powinien utworzyć plik PAL.OUT:
NIE
Dla pliku PAL.IN:
abaaba
twój program powinien utworzyć plik PAL.OUT:
abaaba abaaba
Twój program powinien szukać pliku PAL.IN w katalogu bieżącym i tworzyć plik PAL.OUT również w bieżącym katalogu. Plik zawierający napisany przez Ciebie program w postaci źródłowej powinien mieć nazwę PAL.???, gdzie zamiast ??? należy wpisać co najwyżej trzyliterowy skrót nazwy użytego języka programowania. Ten sam program w postaci wykonywalnej powinien być zapisany w pliku PAL.EXE.