题目描述
Problem Description
Bessie has invented a new programming language, but since there is no compiler yet, she needs your help to actually run her programs.
COWBASIC is a simple, elegant language. It has two key features: addition and MOO loops. For potential overflow issues, Bessie has devised a clever solution: all addition is done modulo $10^9+7$. Bessie's real achievement is the MOO loop, which runs a block of code a fixed number of times. MOO loops and addition can, of course, be nested.
Given a COWBASIC program, please help Bessie determine what number it returns.
Input Format
You are given a COWBASIC program at most 100 lines long, with each line being at most 350 characters long. A COWBASIC program is a list of statements.
<variable> = <expression>
<literal> MOO {
<list of statements>
}
RETURN <variable>
<literal>
<variable>
( <expression> ) + ( <expression> )
There are three types of statements:
There are three types of expressions:
A literal is a positive integer at most 100,000.
A variable is a string of at most 10 lowercase English letters.
It is guaranteed that no variable will be used or RETURNed before it is defined. It is guaranteed that RETURN will happen exactly once, on the last line of the program.
Output Format
Output a single positive integer, giving the value of the RETURNed variable.
Sample Input and Output
Input Sample #1
x = 1
10 MOO {
x = ( x ) + ( x )
}
RETURN x
Output Sample #1
1024
Input Sample #2
n = 1
nsq = 1
100000 MOO {
100000 MOO {
nsq = ( nsq ) + ( ( n ) + ( ( n ) + ( 1 ) ) )
n = ( n ) + ( 1 )
}
}
RETURN nsq
Output Sample #2
4761
Notes/Hints
Scoring:
- In 20 percent of all test cases - MOO loops are not nested.
- In another 20 percent of all test cases - The program only has 1 variable. MOO loops can be nested.
- In the remaining test cases, there are no further restrictions.
输入格式
见题面 Input 部分
输出格式
见题面 Output 部分