계수가 모두 정수인 차수 t의 다항식 f(k)가 다음과 같이 주어진다.
f(k)=c0+c1k+c2k2+⋯+ctkt
음이 아닌 정수 n에 대해 f(0),f(1),…,f(n)의 합을 S(n)이라 하자.
S(n)=∑k=0nf(k)=f(0)+f(1)+⋯+f(n)
S(n)도 다항식이다. 다만 차수가 t+1이고 계수는 유리수이므로 다음과 같이 쓸 수 있다.
S(n)=b0a0+b1a1n+b2a2n2+⋯+bt+1at+1nt+1
여기서 각 i=0,1,…,t+1에 대해 ai와 bi는 서로소인 정수다. 즉 1보다 큰 공약수가 없다. 계수가 0인 자리는 ai=0, bi=1로 정해진다.
정수 계수 c0,…,ct로 주어진 차수 t의 다항식 f(k)에 대해 S(n)을 구하고, 다음 값을 출력하는 프로그램을 작성하라.
∑i=0t+1∣ai∣
다항식에 대한 다음 항등식을 활용해도 된다. 임의의 양의 정수 d와 임의의 실수 x에 대해
(x+1)d−xd=1+(1d)x+(2d)x2+⋯+(d−1d)xd−1
이고, 0≤i≤d인 정수 i에 대해 (id)=i!(d−i)!d!이다.
입력은 표준 입력으로 읽는다. 입력은 T개의 테스트 케이스로 이루어지고, 첫 줄에 테스트 케이스의 개수 T가 주어진다.
각 테스트 케이스는 한 줄이다. 그 줄에는 음이 아닌 정수 t (0≤t≤25)가 먼저 오고, 이어서 정수 c0,…,ct가 t+1개 온다. −10≤c0,…,ct≤10이고 ct=0이다. 이 값이 차수 t이고 계수가 c0,…,ct인 다항식 f(k)=c0+c1k+c2k2+⋯+ctkt를 완전히 결정한다.
출력은 표준 출력으로 쓴다. 테스트 케이스마다 정확히 한 줄을 출력한다. 그 줄에는 값 ∑i=0t+1∣ai∣를 나타내는 정수 하나를 적는다.