Qrafik kalkulyatorlar orta məktəb şagirdləri arasında populyarlıq qazanır. Bu cihazlar funksiyaların qrafiklərini ekranda asanlıqla çəkməyə imkan verir. Lakin, bu kalkulyatorların prosessorları adətən çox sürətli deyil. Bu məsələdə sizdən polinomun qrafikləşdirilməsini sürətləndirmək üçün bir metod tətbiq etməyiniz tələb olunur.
Verilmiş polinom p(x) = a_nx^n + ... + a_1x + a_0 dərəcəsi n olan polinomu m tam nöqtələrdə x = 0, 1, ..., m−1 qrafikləşdirmək istəyirik. Bu nöqtələrdə birbaşa qiymətləndirmə mn vurma və mn toplama tələb edir.
Hesablama sürətini artırmağın bir yolu əvvəlcədən hesablanmış nəticələrdən istifadə etməkdir. Məsələn, əgər p(x) = a_1x + a_0 və p(i) artıq hesablanıbsa, onda p(i + 1) = p(i) + a_1. Beləliklə, p(x)-in hər növbəti dəyəri hər biri bir toplama ilə hesablana bilər.
Ümumiyyətlə, p(i + 1)-i p(i)-dən n toplama ilə hesablaya bilərik, uyğun ilkinləşdirmə aparıldıqdan sonra. Əgər sabitləri C_0, C_1, ..., C_n uyğun şəkildə ilkinləşdirəriksə, p(i)-ni aşağıdakı psevdokoddan istifadə edərək hesablamaq olar:
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
Məsələn, əgər p(x) = a_1x + a_0, biz C_0 = a_0 və C_1 = a_1 ilkinləşdirə bilərik.
Sizin vəzifəniz yuxarıdakı psevdokod üçün i = 0, ..., m − 1 nöqtələrində p(i)-yə düzgün dəyərlər vermək üçün C_0, C_1, ..., C_n sabitlərini hesablamaqdır.
Giriş bir sətirdə verilmiş bir haldan ibarətdir. İlk tam ədəd n-dir, burada 1 ≤ n ≤ 6. Bu, n+1 tam əmsallarla a_n, ..., a_1, a_0 izlənir. Bütün i üçün |a_i| ≤ 50 və a_n ≠ 0 olduğunu qəbul edə bilərsiniz.
Tam ədədləri C_0, C_1, ..., C_n, boşluqlarla ayrılmış şəkildə çap edin.
Nümunə 1