Predstavte si typický deň vo firme Kódíme S Prestávkami. Je 10:50 a všetci hladní programátori sa pýtajú jedinú otázku: “Kedy bude obed?”
V tejto firme však nechodia na obed len tak hala-bala. Na veľkej obrazovke v kuchynke svieti dlhý reťazec núl a jednotiek, ktorý určuje čo sa práve deje:
- Blok núl: “Obed sa ešte pripravuje.”
- Blok jednotiek: “Obed je hotový, môžete ísť.”
Samozrejme, signál musí byť vždy pekne v poradí – najprv všetky nuly, potom všetky jednotky.
No ako to už býva, systém sa občas pokazí. Namiesto pekného prechodu z núl na jednotky sa na obrazovke objaví niečo takéto:
0101110010
Výsledkom je panika na chodbe. Máme ísť na obed? Ešte počkať? Máme si objednať pizzu?
Programátori si však vedia poradiť. Predpokladajú, že sa v signáli stalo čo najmenej chýb, a tak sa snažia zistiť, koľko čisel by stačilo zmeniť, aby sa signál opravil a všetci konečne vedeli, čo majú robiť.
Úloha
Dostanete reťazec tvorený nulami a jednotkami. Zistite, koľko najmenej čísel treba v zadanom reťazci zmeniť tak, aby sa z neho stal signál tvaru: 000…111 Teda aby ste dostali reťazec tvorený súvislým blokom núl a potom súvislým blokom jednotiek, pričom oba súvislé bloky musia mať dĺžku aspoň 1.
Formát vstupu
Na prvom riadku vstupu je číslo \(n\) (\(2 \leq n \leq 10^6\)) udávajúce dĺžku reťazca. V druhom riadku sa nachádza reťazec tvorený \(n\) znakmi len 0 alebo 1.
V jednotlivých sadách platia nasledujúce obmedzenia:
| Sada | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| \(2 \leq n \leq\) | \(15\) | \(1000\) | \(10^5\) | \(10^6\) |
Formát výstupu
Vypíš jeden riadok a v ňom jedno celé číslo udávajúce najmenší počet zmien, ktoré musíme spraviť, aby sme sa dostali do požadovaného stavu.
Príklad
Input:
7
0101101
Output:
2
Môžeme zameniť nuly na tretej a šiestej pozícii za jednotky, vznikne nám reťazec 0111111. Alebo môžeme zmeniť jednotku na druhej pozícii a nulu na šiestej pozícii. Vtedy vznikne reťazec 0001111.
Input:
5
00000
Output:
1
Reťazec má obsahovať súvislý blok núl aj jednotiek, preto potrebujeme urobiť jednu zmenu - pridať na koniec reťazca jednotku. Vznikne nám tak reťazec 00001.
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.