Codeforces Round 560 (Div. 3) |
---|
Закончено |
Вам задано длинное десятичное число, состоящее из $$$n$$$ цифр. Гарантируется, что в нем отсутствуют лидирующие нули. Каждая цифра этого числа равна либо 0, либо 1.
Вы можете совершать операции над этим числом некоторое (возможно, нулевое) количество раз. Каждая операция позволяет вам изменить любую цифру этого числа; вы можете изменить 0 на 1 или 1 на 0. Возможно, что после какой-то операции вы получите число с лидирующими нулями, но это не важно для этой задачи.
Вам также задано два целых числа $$$0 \le y < x < n$$$. Ваша задача — посчитать минимальное количество операций, которое вам необходимо совершить, чтобы получить число, которое имеет остаток $$$10^y$$$ по модулю $$$10^x$$$. Иными словами, полученное число должно иметь остаток $$$10^y$$$ при делении на $$$10^x$$$.
Первая строка входных данных содержит три целых числа $$$n, x, y$$$ ($$$0 \le y < x < n \le 2 \cdot 10^5$$$) — длина числа и числа $$$x$$$ и $$$y$$$, соответственно.
Вторая строка входных данных содержит одно десятичное число, состоящее из $$$n$$$ цифр, каждая цифра этого числа равна либо 0, либо 1. Гарантируется, что первая цифра числа равна 1.
Выведите одно целое число — минимальное количество операций, которое необходимо совершить, чтобы получить число, имеющее остаток $$$10^y$$$ по модулю $$$10^x$$$. Иными словами, полученное число должно иметь остаток $$$10^y$$$ при делении на $$$10^x$$$.
11 5 2 11010100101
1
11 5 1 11010100101
3
В первом тестовом примере число будет равно $$$11010100100$$$ после совершения одной операции. Оно имеет остаток $$$100$$$ по модулю $$$100000$$$.
Во втором тестовом примере число будет равно $$$11010100010$$$ после применения трех операций. Оно имеет остаток $$$10$$$ по модулю $$$100000$$$.
Название |
---|