Задача D - Поиск анаграмм

advertisement
Задача D - Поиск анаграмм
Полный балл:
100
Ограничение времени:
1 с
Ограничение памяти:
512M
Поиск анаграмм
Строка A является анаграммой строки B, если строку A можно получить из строки B
перестановкой символов. Дана строка S длины N. Рассмотрим все её подстроки длины K.
Если одна подстрока является анаграммой другой, то они считаются одинаковыми. Сколько в
строке S различных анаграмм длины K? Для лучшего понимания условия смотрите
пояснение к примерам.
Формат входных данных
В первой строке входных данных содержатся два целых числа N и K - длина строки S и
длина рассматриваемых подстрок. Во второй - строка S, состоящая из маленьких букв
английского алфавита.
Формат результата
Выведите количество различных анаграмм длины K в строке S.
Примеры
Входные данные Результат работы
4 2
abcd
3
6 3
ababab
2
5 3
abcba
2
Пояснения к примерам
В первом примере подстроки длины K: "ab", "bc", "cd". Ни одна из них не является
анаграммой другой. Различных анаграмм 3.
Во втором примере подстроки длины K: "aba", "bab", "aba", "bab". Первая является
анаграммой третьей, а вторая - четвёртой. Следовательно, различных анаграмм 2.
В третьем примере подстроки длины K: "abc", "bcb", "cba". Первая является анаграммой
третьей. Различных анаграмм 2.
Система оценки и описание подзадач
В этой задаче три подзадачи. Баллы за подзадачу начисляются только в случае, если все
тесты для данной подзадачи успешно пройдены.
Подзадача 1 (30 баллов, 30 тестов)
1 ≤ K ≤ N ≤ 100.
Подзадача 2 (35 баллов, 35 тестов)
1 ≤ K ≤ N ≤ 5000.
Подзадача 3 (35 баллов, 35 тестов)
1 ≤ K ≤ N ≤ 105.
Download