График полезных дней

Просмотр в формате PDF

Submit solution


Очки: 140
Ограничение по времени: 1.0s
Ограничение по памяти: 64M

Автор:
Problem types
Allowed languages
C++, Python

Условие

Студент Артём планирует свои занятия на ближайшие n дней. В каждый день у него может быть разный набор доступных активностей:

  • 0 — можно только отдыхать;
  • 1 — можно либо отдыхать, либо решать задачи;
  • 2 — можно либо отдыхать, либо идти на тренировку;
  • 3 — можно отдыхать, решать задачи или идти на тренировку.

Артём хочет провести эти n дней как можно продуктивнее, поэтому старается отдыхать как можно реже.

Однако есть ограничение: два дня подряд нельзя заниматься одной и той же активностью. То есть нельзя решать задачи два дня подряд и нельзя ходить на тренировку два дня подряд. Отдыхать подряд можно.

Нужно определить минимальное количество дней отдыха, которое неизбежно получится у Артёма при оптимальном планировании.

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

В первой строке записано одно целое число n — количество дней (1 <= n <= 100).

Во второй строке записаны n целых чисел a1, a2, ..., an, где ai описывает доступные активности в i-й день:

  • 0 — только отдых;
  • 1 — отдых или решение задач;
  • 2 — отдых или тренировка;
  • 3 — отдых, решение задач или тренировка.

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

Выведите одно целое число — минимальное количество дней отдыха.

Пример 1

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

4
1 3 2 0

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

2

Пример 2

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

7
1 3 2 3 3 2 1

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

1

Пример 3

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

3
2 2 2

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

1

Пояснение

В третьем примере нельзя ходить на тренировку три дня подряд. Один из оптимальных вариантов:

  • день 1 — тренировка,
  • день 2 — отдых,
  • день 3 — тренировка.

Тогда дней


Комментарии

Еще нет ни одного комментария.