11733. Ділення полінома


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

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

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

Маємо поліном степеня \(N\), \(A(x)=A_Nx^N+A_{N-1}x^{N-1}+ \cdots +A_1x+A_0\), і інший степеня \(M\), \(B(x)=B_Mx^M+B_{M-1}x^{M-1}+ \cdots +B_1x+B_0\).

Тут кожен коефіцієнт \(A(x)\) і \(B(x)\) є цілим числом, абсолютне значення якого не більше 100, а старші коефіцієнти не дорівнюють 0.

Крім того, нехай їх добуток буде \(C(x)=A(x)B(x)=C_{N+M}x^{N+M}+C_{N+M-1}x^{N+M -1}+ \cdots +C_1x+C_0\).

Дано \(A_0,A_1, \ldots, A_N\) і \(C_0,C_1,\ldots, C_{N+M}\), знайдіть \(B_0,B_1, \ldots, B_M\).

Тут дані вхідні дані гарантують наявність унікальної послідовності \(B_0, B_1, \ldots, B_M\) що задовольняє заданим умовам.

Обмеження

  • \(1 \leq N < 100\)

  • \(1 \leq M < 100\)

  • \(|A_i| \leq 100\)

  • \(|C_i| \leq 10^6\)

  • \(A_N \neq 0\)

  • \(C_{N+M} \neq 0\)

  • Є унікальна послідовність \(B_0, B_1, \ldots, B_M\), що задовольняє умови.

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

Перший рядок містить цілі числа \(N,M\)

Наступний  рядок містить \(А_0​\) \(A_1\) \(\ldots\) \(A_{N-1}\) \(A_N\)

Третій  рядок містить \(C_0​\) \(C_1\) \(\ldots\) \(C_{N+M-1}\) \(C_{N+M}\)

Числа у рядках розділяються пропуском.

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

У вихідний потік виведіть \(M+1\) цілих чисел \(B_0,B_1,\ldots, B_M\) в один рядок, з пробілами між ними.

Примітка

До прикладу 1:

Для \(A(x)=x+2\) і \(B(x)=2x^2+4x+6\), маємо \(C(x)=A(x)B(x)=(x+2)(2x^2+4x+6)=2x^3+8x^2+14x+12\), тому \(B(x)=2x^2+4x+6\) задовольняє заданим умовам. Отже, \(B_0=6\), \(B_1=4\), \(B_2=2\)

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

1 2
2 1
12 14 8 2

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

6 4 2

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

1 1
100 1
10000 0 -1

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

100 -1

Коментарі

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