CF756F Long number
题目描述
请考虑如下文法:
- ::= | '+'
- ::= | '-' | '(' ')'
- ::= |
- ::= '0' |
- ::= '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
该文法描述了一种十进制下数字的规则:
- 直接表示自身,
- -(记为 $l-r$,满足 $l \leq r$)表示将从 $l$ 到 $r$ 的所有整数按升序拼接成一个整数(不补前导零)。例如,8-11 表示 891011,
- () 表示将由 描述的整数串重复 次,然后拼接为一个整数,
- + 表示先由 描述出一个整数串,再由 描述出一个整数串,并将二者拼接为一个更长的整数。
例如,表达式 2(2-4+1)+2(2(17)) 表示的整数为 2341234117171717。
给定一个符合上述文法的表达式,请输出该表达式对应的数值,结果对 $10^{9} + 7$ 取模。
输入格式
仅一行,一个非空字符串,长度不超过 $10^5$,保证是合法的表达式,并且对于所有的 l-r,均满足 $l \leq r$。
输出格式
输出一个整数,表示该表达式描述的数字对 $10^9+7$ 取模后的结果。
说明/提示
由 ChatGPT 5 翻译