10809. Обробка сигналів


Відправити розв'язок

Бали: 100
Time limit: 1.5s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

Вам надано дві цілочисельні послідовності: сигнал і маску.

Ваше завдання - обробити сигнал, пересуваючи маску по сигналу зліва направо. У кожній позиції маски обчисліть суму добутків вирівняних значень сигналу та маски в частині, де сигнал та маска перекриваються.

Обмеження

  • \(1≤n,m≤2⋅10^5\)
  • \(1≤a_i ​ ,b_i ​ ≤100\)

Формат вхідних даних

Перший рядок містить два цілих числа \(n\) і \(m\): довжину сигналу та довжину маски.

Наступний рядок складається з \(n\) цілих чисел \(a_1 ​,a_2 ​ ,…,a_n ​\), що визначають сигнал.

Останній рядок складається з \(m\) цілих чисел \(b_1 ​ ,b_2 ​ ,…,b_m ​\), що визначають маску.

Формат вихідних даних

Вивести \(n+m−1\) цілих чисел: суму добутків вирівняних значень у кожній позиції маски зліва направо.

Пояснення:

наприклад, у другій позиції маски сума вирівняних добутків дорівнює 2⋅1+3⋅3=11.

Приклад вхідних даних

5 3
1 3 2 1 4
1 2 3

Приклад вихідних даних

3 11 13 10 16 9 4

Коментарі

Ще немає коментарів.