QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 64 MB 満点: 20

#23773. Выкладывание камней го

統計

Условие задачи

Мы играем, выкладывая в ряд на столе белые и чёрные камни для игры в го. Сначала камень кладётся на левый край стола. Затем следующий камень кладётся на $2$-е место слева. Повторяя это действие $n$ раз, мы выстраиваем $n$ камней в один горизонтальный ряд. Однако при выкладывании нового $i$-го камня камни на столе заменяются по следующим правилам:

  • Если $i$ нечётно: уже лежащие на столе камни не заменяются, а новый камень кладётся на $i$-е место слева.
  • Если $i$ чётно: если цвет нового камня, выкладываемого на $i$-е место слева, совпадает с цветом самого правого камня на столе, то камни на столе не заменяются, а новый камень кладётся на $i$-е место слева. В противном случае, то есть если цвет нового камня на $i$-м месте слева отличается от цвета самого правого камня на столе, сначала все подряд идущие камни одного цвета на правом краю стола убираются и заменяются камнями того же цвета, что и $i$-й камень. Затем на правый край стола кладётся $i$-й камень.

Например, пусть после выкладывания первых $7$ камней получилось следующее расположение:

$$\circ \circ \bullet \bullet \circ \circ \circ$$

(здесь $\circ$ обозначает белый камень, а $\bullet$ — чёрный камень).

  • Если $8$-й камень белый ($\circ$), то, поскольку он того же цвета, что и самый правый камень, мы просто кладем его. Следовательно, камни на столе примут вид:

$$\circ \circ \bullet \bullet \circ \circ \circ \circ$$

  • Если $8$-й камень чёрный ($\bullet$), то, поскольку его цвет отличается от самого правого камня ($\circ$), сначала мы убираем $3$ подряд идущих белых камня ($\circ$) на правом краю стола и заменяем их чёрными камнями ($\bullet$). Затем на правый край кладём $8$-й камень. Следовательно, камни на столе примут вид:

$$\circ \circ \bullet \bullet \bullet \bullet \bullet \bullet$$

По заданному во входных данных порядку выкладывания камней напишите программу, которая определит количество белых камней на столе после того, как все $n$ камней будут выложены.

Входные данные

В $1$-й строке записано положительное целое число $n$ ($1 \le n \le 100\,000$). Начиная со $2$-й строки, в $i+1$-й строке ($1 \le i \le n$) записано целое число $c_{i}$, обозначающее цвет $i$-го выкладываемого камня: если $c_{i}$ равно $0$, то $i$-й камень белый, а если $1$ — то $i$-й камень чёрный.

В тестовых данных на $50\%$ баллов выполняется условие $n \le 10\,000$.

Выходные данные

Выведите $1$ строку, содержащую только количество белых камней на столе после выкладывания всех $n$ камней.

Примеры ввода и вывода

Пример ввода 1

8
1
0
1
1
0
0
0
0

Пример вывода 1

6

Пример ввода 2

8
1
0
1
1
0
0
0
1

Пример вывода 2

2

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.