Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024

2020-2022 2023 Regulations Schedule RODO info Ranking

Problem description


Podciągi ABC
(podciagi-abc)
Memory limit: 64 MB
Time limit: 2.00 s

Jasio uczy się alfabetu (angielskiego w tym przypadku). Na razie nauczył się trzech pierwszych, wielkich liter (dla przypomnienia są to kolejno: A, B oraz C).

Jasio zobaczył na murze napis i od razu zaświtał mu w głowie genialny pomysł. Chciałby wybrać w tym napisie jak największą liczbę podciągów ABC. Wybrane podciągi muszą mieć parami rozłączne pozycje (tzn. niedozwolone jest użycie tej samej pozycji literki do różnych podciągów).

Dla przypomnienia, mając dany napis, jego podciąg może być uzyskany poprzez zmazanie z niego pewnej liczby liter (być może żadnej, być może wszystkich, a być może niektórych) i odczytanie pozostałych liter od lewej do prawej. Na przykład, słowo tt jest podciągiem słowa tata, podobnie jak słowo puste, słowo tata oraz słowo t. Słowa atta, aaa lub b nie są podciągami słowa tata.

Napisz program, który: wczyta napis zapisany na murze, wyznaczy największą liczbę rozłącznych podciągów ABC występujących w nim i wypisze wynik na standardowe wyjście.

Wejście

W pierwszym (jedynym) wierszu wejścia znajduje się niepusty napis składający się z wielkich liter alfabetu angielskiego. Jest to napis zapisany na murze.

Wyjście

W pierwszym (jedynym) wierszu wyjścia powinna się znaleźć jedna nieujemna liczba całkowita – liczba znalezionych podciągów ABC zgodnie z warunkami powyżej.

Ograniczenia

Długość napisu na wejściu nie przekracza 1 000 000 znaków.

Przykład

Input Output Explanation
CBACBACBACBA
2

W podanym napisie można wybrać pozycje trzecią, piątą i siódmą oraz szóstą, ósmą i dziesiątą, aby uzyskać łącznie dwa rozłączne podciągi ABC.

Input Output
LEGIAPANY
0