王助教读取内存

时间限制: 1000 ms 内存限制: 65536 kb
总通过人数: 0 总提交人数: 0

题目描述

现在王助教有很多指针需要管理。对每个指针,王助教想要做如下的操作:

  1. move {x} {delta}:将指针x移动delta个字节(可以是正的和负的)delta是十进制的。
  2. read {x} int:在x处读取一个int类型整数,然后将x移动一个int。

指针编号1~n。

初始的指针全部指向首位(0)。

王助教不想访问到无效的空间。所以每次王助教尝试读取一个无效的空间时,请终止这个操作,然后输出一行提示“Index out of bound.”

特别地,本题数据有误,操作数不止m个,请用eof等方式来读取操作,尤其是0.8分的错误的同学

输入

第一行三个数,为指针的个数n,有效的内存字节k,操作次数m。

第二行k个16进制数mi,表示内存每个字节的值。

接下来m行,每行表示一个操作(操作里的输入都是十进制的)。

$0 < n \leq 100 $
$0 < k \leq 10000 $
$0 < m \leq 1000 $
$0 \leq mi \leq FF$

输出

对于每个read操作,输出一行,读取到的int值,或者“Index out of bound.”

输入样例

3 8 7
6 7 8 9 A B C D
read 1 int
read 1 int
read 1 int
move 1 -4
read 1 int 
move 2 1
read 2 int

输出样例

151521030
218893066
Index out of bound.
218893066
168364039

hint

输入和输出的格式符是一样的。 如果不会请自行搜索十六进制的读入方式。

相关推荐