428. Шифр подстановки

Не решаласьСложная

Подстановочный шифр заменяет каждый символ в сообщении на какой-либо ещё, при этом равные символы заменяются на равные, а различные — на различные. Например, при шифровании с помощью подстановочного шифра eeaa, llbb, ooww, vvcc слово «love» оказывается зашифровано как «bwca».

Вам дана зашифрованная строка tt, и требуется выяснить, где в ней в качестве подстроки может встречаться строка ss. Формально нужно найти все позиции ii, такие, что существует такой шифр подстановки, что titi+s1t_i \dots t_{i + |s| – 1} представляет собой зашифрованную версию ss.

Формат ввода

Первая строка входного файла содержит tt. Вторая строка входного файла содержит ss. Каждая строка состоит из символов с ASCII-кодами от 33 до 126. Известно, что 1st2000001 \le |s| \le |t| \le 200\,000.

Формат вывода

Первая строка выходного файла должна содержать kk — количество потенциальных вхождений ss в tt. Вторая строка должна содержать kk целых чисел в порядке возрастания — позиции потенциальных вхождений. Позиции в строке нумеруются, начиная с 1.

Примечание

Первый тест соответствует подстановочному шифру из условия.

Во втором тесте есть два потенциальных вхождения ss в tt — «tat» \to «aba», «tat» \to «bab».

Ограничения

Ограничение времени

1 с

Ограничение памяти

256 МБ

Пример 1

Ввод
bwca
love
Вывод
1
1 

Пример 2

Ввод
abab
tat
Вывод
2
1 2 

Теги

Нужно войти, чтобы отправить решение.Войти