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

Задача . C. Поиск анаграмм


Строка t называется анаграммой строки s, если в строке t можно переставить буквы местами так, чтобы получилась строка s. Например, строка «aab» является анаграммой строки «aba», а строка «aaa» — нет.

Строка t называется подстрокой строки s, если ее можно прочитать начиная с некоторой позиции в строке s. Например, у строки «aba» есть шесть подстрок: «a», «b», «a», «ab», «ba», «aba».

Дана строка s, состоящая из строчных латинских букв и символов «?», и строка p, состоящая только из строчных латинских букв. Назовем строку хорошей, если из нее можно получить анаграмму строки p заменой символов «?» на символы латинского алфавита (каждый символ «?» заменяется на ровно один символ латинского алфавита). Например, если строка p = «aba», то строка «a??» хорошая, а строка «?bc» нет.

Ваша задача найти количество хороших подстрок строки s (одинаковые подстроки нужно учесть в ответе несколько раз).

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

В первой строке задана непустая строка s, состоящая из не более чем 105 строчных латинских букв и символов «?». Во второй строке задана непустая строка p, состоящая из не более чем 105 строчных латинских букв. Обратите внимание, что длина строки p может быть больше длины строки s.

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

Выведите единственное число — количество хороших подстрок строки s.

Две подстроки считаются различными, если их позиции вхождения различны. Значит, если какая-то строка встречается несколько раз, то она должна быть учтена такое же количество раз.

Примечание

Рассмотрим первый тест из условия. Здесь у строки s две хорошие подстроки: «b??» (после замены вопросов получится «baa»), «???» (после замены вопросов получится «baa»).

Рассмотрим второй тест из условия. Здесь у строки s две хорошие подстроки: «ab?» (можно заменить «?» на «c»), «b?c» (можно заменить «?» на «a»).


Примеры
Входные данныеВыходные данные
1 bb??x???
aab
2
2 ab?c
acb
2

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

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