Koniec kola: 16. jún 2025 23:59
2 dni
Počet bodov:
Popis:  12b
Program:  8b

Na Záhorí kdesi žije fena Marta (korelácia s reálnymi rozprávkami je čisto náhodná). Jej páničkovia ju kŕmia záhadnou písmenkovou polievkou. Keď Marta zje túto záhadnú polievku špecifickým spôsobom, začne rozprávať. Všetci si nad tým lámali hlavu. Po chvíli zistili, že Marta rozpráva iba vtedy keď zjedla celú polievku – ale s jedným háčikom. Musela ju jesť nasledovne: každé prehltnutie začína a končí rovnakým písmenkom. Marta je ale rýchly jedlík, tak polievku chce zjesť čo najrýchlejšie (za čo najmenej hltov). Na ďalší deň sa Marta zobudila, ale už nevedela rozprávať. Tak si šla opäť dať polievku, ale zistila, že páničkovia dnes navarili inú. Poraďte jej, ako ju najefektívnejšie zjesť tak, aby znova rozprávala.

Úloha

Máme reťazec dĺžky \(n\).

Tento reťazec musíme postupne, krok po kroku, vymazať. Mazanie funguje nasledovne:

V jednom kroku si vyberieme súvislú podpostupnosť reťazca začínajúcu a končiacu rovnakým písmenkom a zmažeme ju. Takto dokážeme vymazať aj samostatné písmenko, keďže začína a končí rovnakým písmenkom.

Nájdite minimálny počet krokov, za ktoré môžeme vymazať reťazec.

Formát vstupu

Na jedinom riadku vstupu sa nachádza reťazec \(s\) dĺžky \(n\).

\(s\) obsahuje iba veľké a malé písmenká anglickej abecedy.

Formát výstupu

Na výstup vypíšte jediné číslo - minimálny počet krokov, za ktoré môžeme vymazať reťazec.

Obmedzenia

Vstupy úlohy sú tvorené štyrmi sadami s nasledujúcimi obmedzeniami:

Sada 1 2 3 4
\(1 \leq n \leq\) \(5\cdot 10^5\) \(50\) \(1000\) \(5 \cdot 10^5\)

V prvej sade navyše platí, že \(s\) obsahuje iba písmenká a a b.

Príklady

Input:

abba

Output:

1

1. vymažeme 'a..a' -> reťazec po vymazaní : ''

Input:

abcbaccf

Output:

3

1. vymažeme 'abcba' -> reťazec po vymazaní : 'ccf'

2. vymažeme 'cc' -> reťazec po vymazaní : 'f'

3. vymažeme 'f' -> reťazec po vymazaní : ''

Input:

abacaddc

Output:

2

1. vymažeme 'aba' -> reťazec po vymazaní : 'caddc'

2. vymažeme 'caddc' -> reťazec po vymazaní : ''

Odovzdávanie

Na odovzdávanie sa musíš prihlásiť

Otázky a diskusia

Po skončení kola budete mať príležitosť na diskutovanie o riešeniach v diskusii pod vzorovým riešením.