그래핑 계산기는 학생이 손을 거의 대지 않아도 함수를 화면에 그려 준다. 이런 계산기의 프로세서는 느리기 때문에 그리는 과정을 최대한 아껴 써야 한다. 이 문제에서는 다항식을 빠르게 그리는 방법을 구현한다.
차수가 n인 다항식 p(x)=anxn+⋯+a1x+a0을 정수점 x=0,1,…,m−1 총 m개에서 그리려고 한다. 각 점마다 다항식을 그대로 계산하면 곱셈 mn번과 덧셈 mn번이 든다.
앞서 구한 값을 다시 쓰면 계산이 줄어든다. 예를 들어 p(x)=a1x+a0이고 p(i)를 이미 구했다면 p(i+1)=p(i)+a1이므로 다음 값마다 덧셈 한 번이면 된다.
일반적으로 초기화를 마치고 나면 덧셈 n번으로 p(i)에서 p(i+1)을 구할 수 있다. 상수 C0,C1,…,Cn을 알맞게 정하면 아래 의사코드가 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)=a1x+a0이면 C0=a0, C1=a1로 두면 된다.
i=0,…,m−1인 모든 i에서 의사코드가 p(i)의 올바른 값을 내도록 하는 상수 C0,C1,…,Cn을 구하라.
입력은 한 줄이다. 첫 정수는 n이고 1≤n≤6이다. 이어서 정수 계수 an,…,a1,a0이 n+1개 주어진다. 모든 계수는 ∣ai∣≤50을 만족하고 an=0이다.
C0,C1,…,Cn을 공백 하나로 구분해 한 줄에 출력한다.