Logo HelloWorld信息学奥赛题库

少儿编程

时间限制:1 s 空间限制:512 MB

#2082. [USACO17OPEN]奶牛BASIC

Statistics

题目描述

Bessie研制出了一种新的编程语言,但是因为还没有设计编译器的缘故,她需要你的帮助来运行她编的程序。
COWBASIC语言是一种简单的、优美的语言。它有两个关键功能:变量相加和MOO循环。对于可能的溢出问题,Bessie想出了一个很好的方法,所有的变量加法都要以10^9+7为模。但是Bessie设计的COWBASIC语言中真正成功之处是可以运行一段固定数量的代码的MOO循环。MOO循环和加法是可以嵌套的。
给你一段COWBASIC程序,请你帮助Bessie确定这个程序段将会返回什么数值。

输入格式:

你将会得到一段最长为100行的COWBASIC程序,每行的长度最长为350个字符。COWBASIC语言的结构和类型如下所述:
这是COWBASIC语言的三种主要结构:
<变量>=<表达式>          //赋值结构
<数字(循环次数)>MOO{          //循环结构
<一系列的表达式(也就是循环部分)>
}
RETURN <变量>           //输出结构 把return的变量输出就行了
这是COWBASIC语言的三种类型(我是这么理解的)
<数字> 这些数字是小于100,000正整数
<变量> 这些变量名字是一串10个以内的小写英文字母
(<表达式>)+(<表达式>) //注意:这是COWBASIC中变量加法的表达方法,详见样例
我们保证返回的变量是已定义的,RETURN(输出结构)将只会出现一次且在程序的最后一行。

输出格式:

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