题目描述
hke 有一天学会了循环语句,感到很神奇。回到家,他用 C++ 写下这段代码:
其中,q 是给定的常数,f(x) 是一个关于 x 的 m 次多项式,它的表达式为:
f(x)=amxm+am−1xm−1+⋯+a1x+a0hke 迫不及待地开始运行这个程序,但程序运行得实在太慢了。于是他找到了你,想知道这段程序输出的结果是?答案可能很大,你只需输出其对 109+7 取模的结果即可。假设运算过程中不存在溢出。
输入格式
第一行 4 个正整数,分别为 n,m,k,q;
第二行 m+1 个正整数,分别为 a0,a1,a2⋯am;
输出格式
一个数,表示程序运行结果对 109+7 取模的结果。
提示
对于 10% 的数据有 n≤10;
对于 30% 的数据有 n≤1000,m≤1000;
对于 100% 的数据保证 n≤500000,m≤500000,1≤k≤n,q≤1018,1≤ai≤10000。