문제 127
다항식의 곱
두 다항식의 계수가 낮은 차수부터 길이가 각각 $N$, $M$인 정수 배열 $A$, $B$로 주어진다. 배열의 인덱스는 $0$부터 시작하며, 인덱스 $i$의 값은 $i$차항의 계수이다. 두 다항식을 곱한 결과의 계수 배열을 구해 보자. 각 계수는 소수 $998\,244\,353$으로 나눈 나머지로 구한다.
빈 배열은 영다항식을 뜻한다. 두 배열이 비어 있지 않다면 결과 배열의 길이는 $N+M-1$이며, 끝의 계수가 $0$이어도 생략하지 않는다.
입력
첫 번째 줄에 테스트 케이스의 수를 의미하는 정수 $T$가 주어진다. $(1 \le T \le 1\,000)$ 각 테스트 케이스는 다음과 같이 주어진다.
첫 번째 줄에 두 정수 $N$, $M$이 공백으로 구분되어 주어진다. $(0 \le N, M \le 262\,144)$
두 번째 줄에 계수 배열의 정수 원소 $A_0, A_1, \cdots, A_{N-1}$이 공백으로 구분되어 주어진다. $(-2^{31} \le A_i \le 2^{31}-1)$
세 번째 줄에 계수 배열의 정수 원소 $B_0, B_1, \cdots, B_{M-1}$이 공백으로 구분되어 주어진다. $(-2^{31} \le B_i \le 2^{31}-1)$
모든 테스트 케이스에 대한 $N+M$의 합은 $524\,288$ 이하이다. 빈 배열도 빈 줄을 차지한다. 입력 마지막에 연속한 빈 줄은 생략해도 된다.
출력
각 테스트 케이스마다 첫 번째 줄에 곱의 계수 배열 길이를 출력한다. 두 번째 줄에 계수를 낮은 차수부터 공백으로 구분하여 출력한다.
두 배열 중 하나라도 비어 있으면 첫 번째 줄에 $0$을 출력하고 두 번째 줄은 빈 줄로 출력한다. 각 계수는 $[0,998\,244\,353)$의 값으로 출력한다.
예제 입력 1
3 0 2 1 2 1 1 -2147483648 2147483647 3 2 1 2 3 4 5
예제 출력 1
0 1 417104141 4 4 13 22 15