![](/static/branding/mistrzostwa/2024/map_logo.jpg)
![](/static/branding/mistrzostwa/2024/mc_logo.png)
![](/static/branding/mistrzostwa/2024/uwr_logo.png)
![](/static/branding/mistrzostwa/2024/uw_logo.png)
![](/static/branding/mistrzostwa/2024/fii_logo.jpeg)
![](/static/branding/mistrzostwa/2024/fri_logo.png)
Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024
Problem description
Największy fizyk Bitocji, Bajtocjusz
Maksimus, dokonał przełomowego odkrycia dwóch, wcześniej nieznanych
cząsteczek: zerum i jedynkum. Cząsteczki zachowują się w zaskakujący
sposób: jeżeli zerum znajduje się blisko jedynkum, to Bitocjusz może
poruszyć te cząsteczki tak, aby zbliżyły się do siebie i
anihilowały (innymi słowy, przestają istnieć i zupełnie znikają),
pozostawiając po sobie dziurę, ściągającą pozostałe cząsteczki.
Przykładowo, jeżeli Bajtocjusz ustawi obok siebie cząsteczki zerum i
jedynkum w następujący sposób 0010011
(gdzie 0
reprezentuje cząsteczkę zerum, a 1
cząsteczkę jedynkum)
oraz poruszy drugą i trzecią cząsteczkę, to te anihilują się i ciąg
cząsteczek zmieni się w 00011
. Bitocjusz mógłby teraz
powtórzyć tę procedurę, aż żadne dwie cząsteczki zerum i jedynkum nie
będą znajdowały się obok siebie.
Bitocjusz jest bardzo zajętym fizykiem, dlatego poprosił Cię o pomoc. Fizyk ustawił w ciąg kolejne cząsteczki i zastanawia się, ile maksymalnie razy może poruszyć pewną parę sąsiadujących zerum i jedynkum? Pomóż mu i napisz program, który rozstrzyga ten problem.
Wejście
W pierwszym wierszu wejścia znajduje się jedna liczba naturalna N oznaczająca liczbę cząsteczek. W
następnym wierszu znajduje się ciąg N znaków 0
lub
1
, reprezentujących ciąg cząsteczek ustawiony przez
Bitocjusza.
Wyjście
W jednym wierszu wyjścia należy wypisać jedną liczbę całkowitą, oznaczającą maksymalną liczbę razy, jaką Bitocjusz może dokonać anihilacji pewnych dwóch sąsiadujących cząsteczek.
Ograniczenia
1 ≤ N ≤ 1 000 000.
Podzadania
Podzadanie | Warunki | Punkty |
---|---|---|
1 | N ≤ 3 000. | 26 |
2 | Wszystkie zera znajdują się na lewo od wszystkich jedynek. | 18 |
5 | Brak dodatkowych ograniczeń. | 56 |
Przykład
Wejście | Wyjście | Wyjaśnienie |
|
|
Istnieje wiele możliwych kolejności
anihilacji, jednakże w maksymalna liczba anihilacji, jaką można dokonać
to dwie, przykładowo wybierając pierwsze |
Wejście | Wyjście | |
|
|