CF115D Unambiguous Arithmetic Expression
题目描述
对 $\text{UAE}$ 作出如下定义:
所有的非负整数都是 $\text{UAE}$。这些整数可能含有前导零(如 $0000$ 和 $0010$ 被认为是有效的整数)。如果 $X$ 和 $Y$ 是 $\text{UAE}$,那么 $(X)+(Y)$、$(X)-(Y)$、$(X)*(Y)$ 和 $(X)/(Y)$ 都是 $\text{UAE}$。
如果 $X$ 是 $\text{UAE}$,那么 $-(X)$ 和 $+(X)$ 也是 $\text{UAE}$。
给出一个只由 $0\sim9$ 的数字、`-`、`+`、`*`、`/` 组成的字符串。你的任务是计算含有不同 $\text{UAE}$ 表达式的数量,使得如果去掉所有的括号,这些 $\text{UAE}$ 表达式能成为给出的输入文件中的字符串。因为答案可能非常大,请你输出对 $10^6+3$ 取模的结果。
输入格式
输入文件的第一行是一个非空的字符串,只由 $0\sim9$ 的数字、`-`、`+`、`*`、`/` 组成。字符串的长度不超过 $2000$。字符串中不包含任何空格。
输出格式
输出一行一个整数,去除所有括号后能够与输入文件中的字串相同的 $\text{UAE}$ 表达式的个数对 $10^6+3$ 取模的结果。
说明/提示
For the first example, the two possible unambiguous arithmetic expressions are:
` $ ((1)+(2))*(3) $
$ (1)+((2)*(3)) $ `For the second example, the three possible unambiguous arithmetic expressions are: ` $ (03)+((-(30))+(40)) $
$ (03)+(-((30)+(40))) $
$ ((03)+(-(30)))+(40) $ `
$ (1)+((2)*(3)) $ `For the second example, the three possible unambiguous arithmetic expressions are: ` $ (03)+((-(30))+(40)) $
$ (03)+(-((30)+(40))) $
$ ((03)+(-(30)))+(40) $ `