题号:NC249078
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
输入一个字符串,为一个代数式,请把代数式拆分(运算)。
每一项的系数

,如系数

后等于

则省略输出整一项,如系数

后等于

则省略输出系数。
每一项按照第一个字母降幂输出,如为

次则省略 "^1",不可省略乘号。
如果答案中只有一项,省略括号。
字符串格式仅为 "(ax+by)^n%p"。
其中

为可以为26个小写字母中任意一个字符,

为正整数,若

,则 "^n" 省略输入。如

等于

,则输入中会省略。

,

,

。
输入描述:
一行一个字符串,格式为 "(ax+by)^n%p"。
具体见样例。
输出描述:
一行一个字符串,格式为 "(ax+by)^n%p = 答案"。
具体见样例。
示例1
输出
复制
(2x+3y)^2%5 = (4*x^2+2*x*y+4*y^2)%5
示例2
输出
复制
(2x+3y)^2%6 = (4*x^2+3*y^2)%6
示例3
说明
%5E3%3D(3c)%5E3%3D27c%5E3)
,由于答案中只有一项,省略括号。
示例4
说明
取模后所有项系数均为
,故输出
。
示例5
说明
省略输入乘方即代表一次方,
。
示例6
输出
复制
(x+2y)^3%7 = (x^3+6*x^2*y+5*x*y^2+y^3)%7