#P2577. Interpreter

Interpreter

中文题面:

描述

某台计算机拥有1010个寄存器和10001000个存储单元的RAMRAM。每个寄存器或RAMRAM存储单元均保存一个介于09990到999之间的三位整数。指令被编码为三位整数并存储在RAMRAM中,具体编码规则如下:

100100 表示停机指令
2dn2dn 将寄存器dd的值设置为nndnd和n均为0099的整数)
3dn3dn 将寄存器dd的值增加nn
4dn4dn 将寄存器dd的值乘以nn
5ds5ds 将寄存器dd的值设置为寄存器ss的值
6ds6ds 将寄存器ss的值加到寄存器dd
7ds7ds 将寄存器dd的值乘以寄存器ss的值
8da8da 将寄存器aa中存储的地址对应的RAMRAM值赋给寄存器dd
9sa9sa 将寄存器ss的值存入寄存器aa中存储的地址对应的RAMRAM单元
0ds0ds 若寄存器ss的值不为00,则跳转到寄存器dd中存储的地址
所有寄存器初始值均为000000RAMRAM的初始内容从标准输入读取,第一条待执行指令位于RAMRAM地址00处。所有运算结果均对10001000取模。

输入:

输入包含最多10001000个三位无符号整数,表示从地址00开始的连续RAMRAM内容。未指定的RAMRAM单元初始化为000000

输出:

输出一个整数,表示执行的指令总数(包括停机指令)。可假定程序最终会停机。

输入数据 1

299
492
495
399
492
495
399
283
279
689
078
100
000
000
000

输出数据 1

16

来源

滑铁卢本地赛2000年9月30日