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

Задача . B. Сборы по программированию


Берляндский государственный университет (БГУ) проводит сборы по программированию. Сборы продлятся \(n\) дней, и в эти дни лекторы БГУ планируют прочитать несколько лекций.

Некоторые дни сборов уже запланированы как экскурсионные дни, и в эти дни не следует проводить лекции. Чтобы участники не слишком устали от обучения программированию, количество лекций для каждого дня не должно превышать \(k_1\), а количество лекций для каждой пары последовательных дней не должно превышать \(k_2\).

Можете ли вы посчитать максимальное количество лекций, которое можно провести? Формально, необходимо определить максимальное целое число \(m\), для которого можно выбрать \(n\) неотрицательных целых чисел \(c_1\), \(c_2\), ..., \(c_n\) (где \(c_i\) — количество лекций, проведенных в течение дня \(i\)), чтобы:

  • \(c_1 + c_2 + \dots + c_n = m\);
  • для каждого экскурсионного дня \(d\), \(c_d = 0\);
  • для каждого дня \(i\), \(c_i \le k_1\);
  • для каждой пары последовательных дней \((i, i + 1)\), \(c_i + c_{i + 1} \le k_2\).

Обратите внимание, что можно не проводить лекции в дни, в которые нет экскурсий (т. е., \(c_i = 0\) возможно даже в том случае, если \(i\) не является экскурсионным днем).

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

Первая строка содержит одно целое число \(t\) (\(1 \le t \le 50\)) — количество наборов входных данных.

Затем следуют наборы входных данных, каждый из которых состоит из двух строк. Первая строка содержит три целых числа \(n\), \(k_1\), \(k_2\) (\(1 \le n \le 5000\); \(1 \le k_1 \le k_2 \le 200\,000\)).

Вторая строка содержит одну строку \(s\), состоящую из ровно \(n\) символов, каждый из которых является 0 или 1. Если \(s_i = 0\), то день \(i\) является днем экскурсий (поэтому в этот день не должно быть лекций); если \(s_i = 1\), то день \(i\) не является экскурсионным днем.

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

Для каждого набора входных данных выведите одно целое число — максимально возможное значение \(m\) (максимальное количество лекций, которое можно провести).


Примеры
Входные данныеВыходные данные
1 4
4 5 7
1011
4 4 10
0101
5 3 4
11011
6 4 6
011101
12
8
8
14

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

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