QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 256 MB Total points: 100

#3500. COWBASIC

Statistics

Bessie 发明了一种新的编程语言,但由于目前还没有编译器,她需要你的帮助来运行她的程序。

COWBASIC 是一门简单而优雅的语言。它有两个关键特性:加法和 MOO 循环。Bessie 设计了一个巧妙的溢出处理方案:所有的加法运算均在模 $10^9+7$ 下进行。但 Bessie 真正的成就是 MOO 循环,它能将一段代码块重复执行固定的次数。当然,MOO 循环和加法是可以嵌套的。

给定一个 COWBASIC 程序,请帮助 Bessie 确定它返回的数值。

输入格式

你将获得一个长度不超过 100 行的 COWBASIC 程序,每行不超过 350 个字符。COWBASIC 程序是一系列语句的列表。

语句共有三种类型:

<variable> = <expression>

<literal> MOO {
  <list of statements>
}

RETURN <variable>

表达式共有三种类型:

<literal>

<variable>

( <expression> ) + ( <expression> )

字面量(literal)是一个不超过 100,000 的正整数。

变量(variable)是一个长度不超过 10 个小写英文字母的字符串。

保证在变量定义之前不会被使用或 RETURN。保证程序最后一行恰好执行一次 RETURN。

输出格式

输出一个正整数,即 RETURN 语句中变量的值。

子任务

  • 在 20% 的测试用例中,MOO 循环不会嵌套。
  • 在另外 20% 的测试用例中,程序仅包含 1 个变量。MOO 循环可以嵌套。
  • 在剩余的测试用例中,没有进一步的限制。

样例

样例输入 1

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

样例输出 1

1024

说明 1

该 COWBASIC 程序计算了 $2^{10}$。

样例输入 2

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

样例输出 2

4761

说明 2

该 COWBASIC 程序计算了 $(10^5*10^5+1)^2$(模 $10^9 + 7$)。

题目来源:Jonathan Paulson

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.