EduBrick

N. Поиск подмассива со сдвигом

2000 мс · 256 МБ · всё или ничего

Даны массивы aa и bb. Найдите все вхождения bb в aa с точностью до сдвига на целое число: индекс ll подходит, если a[l+i]=b[i]+da[l + i] = b[i] + d при всех ii и каком-то общем dd.

Инвариант, не зависящий от dd, - разности соседей:

b[i+1]−b[i]=(b[i+1]+d)−(b[i]+d)b[i+1] - b[i] = (b[i+1] + d) - (b[i] + d)

Значит, ищем последовательность разностей bb внутри последовательности разностей aa. Обычная префикс-функция, только не по символам, а по числам.

Формат ввода

В первой строке - числа nn и kk (1≤n,k≤1051 \le n, k \le 10^5) - длины массивов.

Во второй строке - nn чисел aia_i, в третьей - kk чисел bib_i (0≤ai,bi≤1090 \le a_i, b_i \le 10^9).

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

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

Примеры

ввод
5 2
1 2 4 5 7
10 11
вывод
1 3
ввод
10 3
1 2 1 2 1 10 10 15 16 15
1 2 1
вывод
1 3 8
ввод
2 5
1 2
1 2 3 4 5
вывод

Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.