Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- int main() {
- // Переменные для хранения входных данных
- int size, limit;
- std::string s;
- // Чтение входных данных
- std::cin >> size >> limit >> s;
- // Подсчет количества
- int answer = 0;
- for (int level = 0; level < 2*size; ++level) {
- // Цикл по диагоналям. level - номер (уровень) диагонали
- int left = level / 2; // начало подстроки (индекс строки в таблице)
- int right = (level + 1) / 2; // конец подстроки (индекс столбца в таблице)
- for (int count = 0; left >= 0 && right < size; --left, ++right) { // идем вдоль диагонали, параллельной побочной
- count += s[left] != s[right]; // Увеличиваем количество символов, которые неоходимо заменить, чтобы строка стала палиндромом
- if (count > limit) break; // Выходим из цикла, если превысили предел
- ++answer; // Увеличивает ответ на 1
- }
- }
- // Выводим ответ:
- std::cout << answer;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement