#L2580. 「SHOI2011」编译优化

「SHOI2011」编译优化

题目描述

就像 PASCAL 语言和 C/C++ 语言一样,SH 语言也是一种编程语言。SH 语言共有 ( 26 ) 个寄存器,用大写拉丁字母 ( A, B, \dots, Z ) 表示。

SH 语言的程序结构如下:

  • 第一行依次是这 ( 26 ) 个寄存器的初始值,用空格分隔。
  • 第二行起,每一行都是一条命令。

SH 语言有三种命令,具体如下:

命令 格式 功能 限制
ADD ADD_R1_R2 将寄存器 ( R2 ) 的值加到寄存器 ( R1 ) 上
GOTO IF_R_<I1 GOTO_LINE_I2 若寄存器 ( R ) 的值小于立即数 ( I1 ),则跳转至第 ( I2 )(( \ge 2 ))行,否则继续执行下一行 至多出现一次,且只可能出现在第 ( I2 ) 行之后
PRINT PRINT_R 打印寄存器 ( R ) 的值 出现且仅出现在最后一行

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

输入格式

每个输入文件都是一个 SH 语言的程序。输入文件保证:所有寄存器的初始值以及 GOTO 命令中出现的立即数,均为不超过 ( 2^{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  

数据范围与提示

  • 在每个测试点,如果输出与标准答案完全一致,将获得该测试点的全部分数;否则得 ( 0 ) 分。
  • 本题为提交答案题,所有 ( 10 ) 个输入文件为 compiler1.in ~ compiler10.in,需分别给出对应的输出文件 compiler1.out ~ compiler10.out
  • 只需提交输出文件,无需提交程序。