(A+B)^N%P Problem
题号:NC249078
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

输入一个字符串,为一个代数式,请把代数式拆分(运算)。

每一项的系数 \%p ,如系数 \%p 后等于 0 则省略输出整一项,如系数 \%p 后等于 1 则省略输出系数。

每一项按照第一个字母降幂输出,如为 1 次则省略 "^1",不可省略乘号。

如果答案中只有一项,省略括号。

字符串格式仅为 "(ax+by)^n%p"。

其中 x,y 为可以为26个小写字母中任意一个字符, a,b,n,p 为正整数,若 n=1 ,则 "^n" 省略输入。如 a,b 等于 1 ,则输入中会省略。

1\le n \le 10^31\le p \le 10^91\le a,b \le 10^6

输入描述:

一行一个字符串,格式为 "(ax+by)^n%p"。
具体见样例。

输出描述:

一行一个字符串,格式为 "(ax+by)^n%p = 答案"。
具体见样例。
示例1

输入

复制
(2x+3y)^2%5

输出

复制
(2x+3y)^2%5 = (4*x^2+2*x*y+4*y^2)%5

说明

(2x+3y)^2=4x^2+12xy+9y^2
4\%5=4,12\%5=2,9\%5=4
示例2

输入

复制
(2x+3y)^2%6

输出

复制
(2x+3y)^2%6 = (4*x^2+3*y^2)%6

说明

(2x+3y)^2=4x^2+12xy+9y^2
4\%6=4
12\%6=0,故输出中省略该项。
9\%6=3
示例3

输入

复制
(c+2c)^3%4

输出

复制
(c+2c)^3%4 = 3*c^3%4

说明

(c+2c)^3=(3c)^3=27c^3
27\%4=3,由于答案中只有一项,省略括号。
示例4

输入

复制
(2a+2b)^2%2

输出

复制
(2a+2b)^2%2 = 0

说明

取模后所有项系数均为 0,故输出 0
示例5

输入

复制
(3c+6d)%4

输出

复制
(3c+6d)%4 = (3*c+2*d)%4

说明

省略输入乘方即代表一次方,n=1
示例6

输入

复制
(x+2y)^3%7

输出

复制
(x+2y)^3%7 = (x^3+6*x^2*y+5*x*y^2+y^3)%7

说明

(x+2y)^3=x^3+6x^2y+12xy^2+8y^3