Не згортка
Обмеження: 2 сек., 256 МіБ
Задано масив aa з n цілих чисел та масив b з m цілих чисел.
Також є масив c з n+m елементів, які початково нулі.
Масиви індексуються з 1.
Виконується такий код:
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++)
c[i + gcd(i, j)] += a[i] * b[j]
gcd(i,j) — найбільший спільний дільник i та j.
Під час виконання не відбувається жодних цілочислових переповнень.
Знайдіть масив c після виконання коду.
Вхідні дані
У першому рядку задано ціле число n — кількість елементів у масиві a.
Другий рядок містить n цілих чисел — елементи масиву a.
У третьому рядку задано ціле число m — кількість елементів у масиві b.
Четвертий рядок містить m цілих чисел — елементи масиву b.
Вихідні дані
У єдиному рядку виведіть n+m цілих чисел — елементи масиву c.
Обмеження
1≤n,m≤105,
0≤ai,bj≤104.
Приклади
Вхідні дані (stdin) | Вихідні дані (stdout) |
---|---|
3 1 2 3 4 2 5 3 1 | 0 11 10 36 0 9 0 |