luogu#P4639. [SHOI2011] 编译优化

[SHOI2011] 编译优化

题目描述

就像 PASCAL 语言和 C/C++ 语言一样, SH 语言也是一种编程语言。 SH 语言共有 2626 个寄存器,用大写拉丁字母 A, B, … , Z 表示。 SH 语言的程序中,第一行依次是这 2626 个寄存器的初始值,用空格分隔。程序的第二行起,每一行都是一条命令。 SH 语言有三种命令,如下表所示(在格式这一列中,用下划线代替实际语言中的一个空格)。

  • ADD命令 格式:ADD_R1_R2 功能:将寄存器 R2 的值加到寄存器 R1 上。 限制:无。

  • GOTO 命令 格式:IF _R_ < _I1_ GOTO _LINE_ I2 功能:如果寄存器 R 的值小于立即数 I1 ,则跳转至第 I2 ( 2\ge 2 )行,否则继续执行下一行。限制:至多出现一次,且只可能出现在第 I2 行之后。

  • PRINT 命令 格式:PRINT_R 功能:打印寄存器 R 的值。限制:出现且仅出现在最后一行。

现给定一个 SH 语言的程序,请输出 PRINT 命令打印的值。

输入格式

每个输入文件都是一个 SH 语言的程序。输入文件保证:所有寄存器的初始值以及 GOTO 命令中出现的立即数,均为不超过 26312^{63}-1 的非负整数,但程序执行过程中寄存器的值不限于此。

输出格式

每个输出文件只有一行,包含一个整数,即 PRINT 命令所打印的值。

0 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ADD A B
IF A < 220 GOTO LINE 2
PRINT A
300

提示

在每个测试点,如果您的输出与标准答案完全一致,您将能得到该测试点的全部分数;否则,您将在该测试点得 00 分。

本题为提交答案题,所有的 1010 个输入文件 compiler1.in ~ compiler10.in 都已存放在题目背景的下载链接中。对于每个输入文件,您需要分别给出相应的输出文件 compiler1.out ~ compiler10.out

注意:您只需提交输出文件而无需提交任何程序。