Codeforces Round 552 (Div. 3) |
---|
Закончено |
Робот стоит в точке $$$X=0$$$ координатной оси $$$Ox$$$. Он хочет дойти до точки $$$X=n$$$. Вы контролируете этого робота и контролируете то, как он ходит. У робота есть батарея и аккумулятор, который можно подзаряжать от солнечного света.
$$$i$$$-й отрезок пути (от $$$X=i-1$$$ до $$$X=i$$$) может быть либо освещен солнечным светом, либо нет. Массив $$$s$$$ обозначает, какие отрезки освещены солнечным светом: если отрезок $$$i$$$ освещен, тогда $$$s_i = 1$$$, иначе $$$s_i = 0$$$.
У робота есть одна батарея емкости $$$b$$$ и один аккумулятор емкости $$$a$$$. Вы должны выбрать для каждого отрезка, какой тип хранилища энергии робот будет использовать для того, чтобы добраться до следующей точки (это может быть либо батарея, либо аккумулятор). Если робот идет, используя батарею, то текущий заряд батареи уменьшается на единицу (робот не может использовать батарею, если ее заряд равен нулю). И если же робот идет, используя аккумулятор, то текущий заряд аккумулятора уменьшается на единицу (и робот не может использовать аккумулятор, если его заряд равен нулю).
Если текущий отрезок освещен солнечным светом и робот проходит его, используя батарею, то заряд аккумулятора увеличивается на единицу (конечно, он не может превысить максимальную емкость аккумулятора).
Если для движения используется аккумулятор, его заряд уменьшается на 1 (вне зависимости от того, освещен ли отрезок или нет).
Вы понимаете, что не всегда возможно дойти до $$$X=n$$$. Вы хотите, чтобы Ваш робот прошел так далеко, как только возможно. Найдите максимальное количество отрезков пути, которое робот может пройти, если вы будете контролировать его оптимально.
Первая строка входных данных содержит три целых числа $$$n, b, a$$$ ($$$1 \le n, b, a \le 2 \cdot 10^5$$$) — точку назначения робота, заряд батареи и заряд аккумулятора.
Вторая строка входных данных содержит $$$n$$$ целых чисел $$$s_1, s_2, \dots, s_n$$$ ($$$0 \le s_i \le 1$$$), где $$$s_i$$$ равно $$$1$$$, если $$$i$$$-й отрезок пути освещен солнечным светом, и $$$0$$$ иначе.
Выведите одно целое число — максимальное количество отрезков, которое робот сможет пройти, если вы будете контролировать его оптимально.
5 2 1 0 1 0 1 0
5
6 2 1 1 0 0 1 0 1
3
В первом тестовом примере робот может пройти первый отрезок, используя аккумулятор, и заряды станут равны $$$b=2$$$ и $$$a=0$$$. Второй отрезок робот может пройти, используя батарею, и заряды станут равны $$$b=1$$$ и $$$a=1$$$. Третий отрезок робот может пройти, используя аккумулятор, и заряды станут равны $$$b=1$$$ и $$$a=0$$$. Четвертый отрезок робот может пройти, используя батарею, и заряды станут равны $$$b=0$$$ и $$$a=1$$$. И пятый отрезок робот может пройти, используя батарею.
Во втором тестовом примере робот может пройти максимальное количество отрезков, используя батарею два раза и аккумулятор один раз в любом порядке.
Название |
---|