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) $ `