#L3666. [USACO17OPEN] COWBASIC P
[USACO17OPEN] COWBASIC P
P3666 [USACO17OPEN] COWBASIC P
题目描述
Bessie 发明了一种新的编程语言,但由于还没有编译器,她需要你的帮助来实际运行她的程序。
COWBASIC 是一种简单而优雅的语言。它有两个关键特性:加法和 MOO 循环。Bessie 设计了一个巧妙的解决方案来处理溢出:所有的加法都是在模 下进行的。但 Bessie 的真正成就是 MOO 循环,它可以固定次数地运行一段代码。当然,MOO 循环和加法可以嵌套。
给定一个 COWBASIC 程序,请帮助 Bessie 确定它返回的数字。
输入格式
你将获得一个最多 100 行的 COWBASIC 程序,每行最多 350 个字符。一个 COWBASIC 程序是一个语句列表。
有三种类型的语句:
<variable> = <expression>
<literal> MOO {
<list of statements>
}
RETURN <variable>
有三种类型的表达式:
<literal>
<variable>
( <expression> ) + ( <expression> )
字面量是一个最多为 100,000 的正整数。
变量是一个最多由 10 个小写英文字母组成的字符串。
保证在定义之前不会使用或 RETURN 任何变量。保证 RETURN 恰好发生一次,并且在程序的最后一行。
输出格式
输出一个正整数,表示 RETURN 的变量的值。
输入输出样例 1
x = 1
10 MOO {
x = ( x ) + ( x )
}
RETURN x
1024
输入输出样例 2
n = 1
nsq = 1
100000 MOO {
100000 MOO {
nsq = ( nsq ) + ( ( n ) + ( ( n ) + ( 1 ) ) )
n = ( n ) + ( 1 )
}
}
RETURN nsq
4761
说明/提示
评分
在 20% 的测试用例中,MOO 循环不会嵌套。
在另外 20% 的测试用例中,程序只有一个变量。MOO 循环可以嵌套。
在剩余的测试用例中,没有进一步的限制。