Побудова Поліномів
Графічні калькулятори стали популярними серед учнів старших класів, оскільки дозволяють легко відображати функції на екрані. Однак, ці калькулятори зазвичай не мають дуже швидких процесорів. У цій задачі вам потрібно реалізувати метод для прискорення відображення полінома.
Дано поліном p(x) = a_nx^n + ... + a_1x + a_0 степеня n. Ми хочемо обчислити значення цього полінома в m цілих точках x = 0, 1, ..., m−1. Пряме обчислення в цих точках вимагає mn множень і mn додавань.
Один із способів прискорити обчислення — це використати раніше обчислені результати. Наприклад, якщо p(x) = a_1x + a_0 і p(i) вже обчислено, тоді p(i + 1) = p(i) + a_1. Таким чином, кожне наступне значення p(x) можна обчислити за допомогою одного додавання.
Загалом, ми можемо обчислити p(i + 1) з p(i) за допомогою n додавань, після відповідної ініціалізації. Якщо ми ініціалізуємо константи C_0, C_1, ..., C_n відповідним чином, можна обчислити p(i) за допомогою наступного псевдокоду:
p(0) = C_0; t_1 = C_1; ... t_n = C_n;
for i from 1 to m-1 do
p(i) = p(i-1) + t_1;
t_1 = t_1 + t_2;
t_2 = t_2 + t_3;
...
...
t_(n-1) = t_(n-1) + t_n;
end
Наприклад, якщо p(x) = a_1x + a_0, ми можемо ініціалізувати C_0 = a_0 і C_1 = a_1.
Ваше завдання — обчислити константи C_0, C_1, ..., C_n для наведеного вище псевдокоду, щоб отримати правильні значення для p(i) при i = 0, ..., m − 1.
Вхідні дані
Вхід складається з одного випадку, заданого на одному рядку. Першим цілим числом є n, де 1 ≤ n ≤ 6. За ним слідують n+1 цілих коефіцієнтів a_n, ..., a_1, a_0. Ви можете припустити, що |a_i| ≤ 50 для всіх i, і a_n ≠ 0.
Вихідні дані
Виведіть цілі числа C_0, C_1, ..., C_n, розділені пробілами.