logo AlgoBeat OnlineJudge
登录 注册

#104778. [BZOJ 4778] [Usaco2017 Open]COWBASIC

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:无测试数据
上传者: 匿名

题目描述

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. Bessie has devised a clever solution to overflow: all addition is done modulo . But 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.

输入格式

You are given a COWBASIC program at most lines long, with each line being at most characters long. A COWBASIC program is a list of statements.

There are three types of statements:

<variable> = <expression>

<literal> MOO {
<list of statements>

}
RETURN <variable>

There are three types of expressions:

<literal>

<variable>

( <expression> ) + ( <expression> )

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 a single positive integer, giving the value of the RETURNed variable.

样例

样例输入 #1

x = 1
10 MOO {
x = ( x ) + ( x )
}
RETURN x

样例输出 #1

1024

样例输入 #2

n = 1
nsq = 1
100000 MOO {
100000 MOO {
nsq = ( nsq ) + ( ( n ) + ( ( n ) + ( 1 ) ) )
n = ( n ) + ( 1 )
}
}
RETURN nsq

样例输出 #2

4761

数据范围与提示

In percent of all test cases - MOO loops are not nested.
In another percent of all test cases - The program only has variable. MOO loops can be nested.
In the remaining test cases, there are no further restrictions.

数据:MOO 循环不嵌套;
另外 数据:程序只有一个变量,MOO 循环可嵌套;
对于 的数据,程序最长 行,每行最长 字符。
感谢@psk2016 提供的翻译。

Platinum