Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

ML1_E - Usuwanie palindromów

Dany jest wyraz złożony z małych liter alfabetu angielskiego. Na wyrazie tym możemy wykonać dowolną liczbę operacji. Pojedyncza operacja polega na usunięciu dowolnej części wyrazu. Usuwany fragment musi być palindromem. Pozostałe części są sklejane w nowy wyraz z zachowaniem ich dotychczasowej kolejności. Twoim zadaniem jest całkowite usunięcie wyrazu.

Palindrom jest to wyraz, który czytany od lewej strony do prawej brzmi tak samo jak czytany od prawej strony do lewej np. kajak.

Odpowiedz na pytanie, ile minimalnie operacji trzeba wykonać żeby usunąć cały wyraz?

Wejście

Na wejściu znajduje się wyraz złożony z małych liter alfabetu angielskiego, którego długość nie przekracza 400 liter.

Wyjście

Na wyjściu należy wypisać odpowiedź na pytanie, ile minimalnie operacji trzeba wykonać żeby usunąć cały wyraz?

Przykład

Wejście:

addbcba

Wyjście:

2

Wyjaśnienie do przykładu:

W pierwszym kroku usuwamy fragment dd. Po jego usunięciu otrzymujemy wyraz abcba. Ponieważ jest on palindromem możemy go w całości usunąć w drugim kroku.


Dodane przez:Maciej Boniecki
Data dodania:2019-06-26
Limit czasu wykonania programu:1s
Limit długości kodu źródłowego50000B
Limit pamięci:1536MB
Cluster: Cube (Intel G860)
Języki programowania:All except: ASM32-GCC MAWK BC C-CLANG NCSHARP CPP14-CLANG COBOL COFFEE D-CLANG D-DMD ELIXIR FANTOM FORTH GOSU GRV JS-MONKEY JULIA KTLN NIM OBJC OBJC-CLANG OCT PICO PROLOG R RACKET RUST SCM qobi CHICKEN SQLITE SWIFT UNLAMBDA VB.NET
Pochodzenie:Mini Liga 1

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.