UVA1596 找bug Bug Hunt

题目描述

输入并模拟执行一段程序,输出第一个 bug 所在行。每行程序有两种可能: - 数组定义,格式为 `arr[size]`。例如 `a[10]` 或者 `b[5]`,可用下标分别是 $0\sim9$ 和 $0\sim4$。定义之后所有元素均为未初始化状态。 - 赋值语句,格式为 `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 提供翻译