小L的多项式
题号:NC218033
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

一天,小 L 收到了一个多项式 ,现在他想求这个多项式的若干点值,你能帮帮他吗?
即,给定 x_1...x_m,需要你求 f(x_1)....f(x_m)。由于结果可能很大,你需要输出结果对 998244353 取模的值。

输入描述:

第一行一个正整数 n,表示多项式 f 的次数。
第二行 n + 1 个整数 a_0,a_1...a_n,表示 f 各项的系数。
第三行一个整数 m,表示要求的点数的个数。
第四行 m 个整数 x_i,意义见【题面描述】。

输出描述:

输出仅一行 m 个数,为 f(x_1)...f(x_m) 对 998244353 取模的结果。
示例1

输入

复制
2
1 1 1
3
2 3 4

输出

复制
7 13 21

说明

f(x) = x ^ 2 + x + 1,在 x = 2,3,4 处的点值分别为 2 ^ 2 + 2 + 1 = 7, 3 ^ 2 + 3 + 1 = 13, 4 ^ 2 + 4 + 1 = 21
对于 30\% 的数据,满足 n, m \leq 5, a_i, x_i \leq 5
另有 30\% 的数据,满足 a_0 = a_1 = ... = a_n
对于 100\% 的数据,满足 1 \leq n, m \leq 1000, 0 \leq a_i, x_i < 998244353