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
Коментарі