多项式求值
题号:NC14618
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

        学
        一f(x)=a0+a1x+a2x2+a3x3++anxnai(i=0,1,2,,n)
        给xZf(x)mod1000000007

输入描述:

多组读入。
每组的第一行,表示多项式f(x)
接下来是一个整数n,接着一行有n个整数x,你需要求值f(x) mod 1000000007
组数不超过100,x在int表示的范围内,f(x)所有项的系数和指数都在int表示的范围内(指数保证非负)。

输出描述:

对于每一个,在单独的一行中输出一个整数。
示例1

输入

复制
3x^2+6x+10-3x
4
0
1
2
3

输出

复制
10
16
28
46

备注:

65%左右的多项式项数不超过20,查询数不超过20
25%左右的多项式项数不超过100,查询数不超过25
10%左右的多项式项数不超过10000,查询数不超过100
注意:对于f(x)的单项式aix^i(i!=0),若系数ai为0,我们有时会忽略这些项,若i=1,可能表示为a1x^i或是a1x。因为某些原因,对于幂次相同的单项式可能出现多次。