找bug Bug Hunt
题意翻译
输入并模拟执行一段程序,输出第一个bug所在行。每行程序有两种可能:
- 数组定义,格式为arr[size]。例如a[10]或者b[5],可用下标分别是0~9和0~4。定义之后所有元素均为未初始化状态。
- 赋值语句,格式为arr[index]=value。例如a[0]=3或者a[a[0]]=a[1]。
赋值语句可能会出现两种bug:下标index越界;使用未初始化的变量(index和value都可能出现这种情况)。
输入不超过1000行,每行不超过80个字符且所有常数均为小于2^31的非负整数。
------------
输入格式:
输入包含多组数据,每组数据用“.”隔开。输入以连续输入两个“.”结束。详见样例。
输出格式:
每组数据你都应输出第一个bug所在行,如没有bug,则输出0。详见样例。
样例输入:
```
a[3]
a[0]=a[1]
.
x[1]
x[0]=x[0]
.
a[0]
a[0]=1
.
b[2]
b[0]=2
b[1]=b[b[0]]
b[0]=b[1]
.
g[2]
G[10]
g[0]=0
g[1]=G[0]
.
a[2147483647]
a[0]=1
B[2]
B[a[0]]=2
a[B[a[0]]]=3
a[2147483646]=a[2]
.
.
```
样例输出:
```
2
2
2
3
4
0
```
由 @andyli 提供翻译
题目描述
[problemUrl]: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=448&page=show_problem&problem=4471
[PDF](https://uva.onlinejudge.org/external/15/p1596.pdf)