性能优化
题号:NC208302
时间限制:C/C++/Rust/Pascal 6秒,其他语言12秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

程序员小明正在开发一套大型软件,软件中有一段核心程序,用伪代码描述如下(假设所有变量初值均为 00,并且假定其中的数据类型均不会出现溢出):
Input a[0], a[1], ... , a[n - 1], b[0], b[1], ... , b[n - 1], C
For i: 0 to n - 1
    x[0, i] = a[i]
For i: 0 to C - 1
    For j: 0 to n - 1
        For k: 0 to n - 1
            x[i + 1, (j + k) mod n] = x[i + 1, (j + k) mod n] + b[k]x[i, j]
Output x[C, 0] mod (n + 1), x[C, 1] mod (n + 1), ... , x[C, n - 1] mod (n + 1)
但是,这段程序的效率非常低,它的时间复杂度高达 。他想让你帮忙优化一下这个程序,当然要求输出相同的结果。为了使问题更简单,他保证输入的 能表示成若干个不超过 的正整数的乘积,并且 是质数。

输入描述:

规范起见,以下将下标统一写到数组名称的右下角。例如: a_1对应伪代码中的 
对应伪代码中的
输入的第一行包含两个非负整数 n, C。
接下来一行包含 个非负整数
接下来一行包含 个非负整数

输出描述:

输出包含  行,每行包含一个数。第  行为  的值。你需要保证输出的数在 之间。
示例1

输入

复制
4 1
1 2 3 4
4 3 3 1

输出

复制
2
1
0
2

备注:

总共 10 个测试点,数据范围满足:
在所有输入数据中,a_ib_i均不超过