Олимпиадный тренинг

Задача . C. Теряй!


Вам задан массив \(a\), состоящий из \(n\) целых чисел. Каждое \(a_i\) равно одному из следующих шести чисел: \(4, 8, 15, 16, 23, 42\).

Ваша задача — удалить минимальное количество элементов, чтобы сделать массив хорошим.

Массив длины \(k\) называется хорошим, если \(k\) делится на \(6\) и возможно разделить его на \(\frac{k}{6}\) подпоследовательностей \(4, 8, 15, 16, 23, 42\).

Примеры хороших массивов:

  • \([4, 8, 15, 16, 23, 42]\) (весь массив является необходимой последовательностью);
  • \([4, 8, 4, 15, 16, 8, 23, 15, 16, 42, 23, 42]\) (первая последовательность состоит из первого, второго, четвертого, пятого, седьмого и десятого элементов, а вторая состоит из оставшихся элементов);
  • \([]\) (пустой массив является хорошим).

Примеры плохих массивов:

  • \([4, 8, 15, 16, 42, 23]\) (порядок элементов должен быть в точности \(4, 8, 15, 16, 23, 42\));
  • \([4, 8, 15, 16, 23, 42, 4]\) (длина массива не делится на \(6\));
  • \([4, 8, 15, 16, 23, 42, 4, 8, 15, 16, 23, 23]\) (первая последовательность может состоять из первых шести элементов, но оставшийся массив не может составить необходимую последовательность).
Входные данные

Первая строка входных данных содержит одно целое число \(n\) (\(1 \le n \le 5 \cdot 10^5\)) — количество элементов в \(a\).

Вторая строка входных данных содержит \(n\) целых чисел \(a_1, a_2, \dots, a_n\) (каждое \(a_i\) равно одному из следующих шести чисел: \(4, 8, 15, 16, 23, 42\)), где \(a_i\)\(i\)-й элемент \(a\).

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

Выведите одно целое число — минимальное количество элементов, которое необходимо удалить, чтобы получить хороший массив.


Примеры
Входные данныеВыходные данные
1 5
4 8 15 16 23
5
2 12
4 8 4 15 16 8 23 15 16 42 23 42
0
3 15
4 8 4 8 15 16 8 16 23 15 16 4 42 23 42
3

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя