UVA1348 Tomato Automata

题目描述

Tomato Automata 是一个很酷的小程序。输入一个无限的1和0序列, 程序会输出一个数字序列。它广泛应用于Stanescu操作系统(SOS)中。 Tomato Automata 是用非常简单的Tomato 语言编写的。下面是它的说明: 1. Tomato语言是一种非常简单但很强大的语言。 2. 每行恰好有一个命令,程序从第一行开始执行。 3. Tomato程序中的行号按顺序为$1$到$N$($N \le 100000$)的整数。$N$将会在输入中给出。 4. Tomato语言中只有五种命令:`ifgo`,`jump`, `pass`, `loop`, `die`。 5. 代码执行时,每个命令都会打印其行号。 6. `ifgo`命令只有一个参数。当执行到`ifgo x`时,程序将会从输入流之中读入一个01位。如果读入的位为1则跳至第`x`行,否则继续执行下一行。 7. `jump`命令只有一个参数。当执行到`jump x`时,程序会直接跳至第`x`行。 8. `pass`命令没有参数。它除了也会打印行号外什么也不干。 9. `die`命令没有参数。它会在打印行号后立即终止程序。它不会出现在循环中。 10. `loop`命令是唯一一个有两个参数的命令。`loop s x`表示从第`s`行到当前行会循环执行`x`次(从第一次到达第`s`行算第一次)。保证第`s`行在`loop`所在行之前。 11. `jump`和`ifgo`命令只能在最内层循环中跳转。不能从循环外跳至某个循环内,也不能从循环内跳至循环外。 12. 循环只能严格嵌套,不会存在两个循环的行区间相交但不相包含的情况。 13. 除非最后一行是`die`命令,否则最后一行执行完之后程序会从第一行开始执行。 14. 在命令及其参数之前和之后可能会出现多个空白符号。 15. 程序每行最多有80个字符(包括空白符号)。 现给出若干个番茄程序,问程序打印出的字符串最长可以是多少。如果程序可能死循环输出$infinity$。

输入格式

输入若干份程序代码,每两份代码之间用一个空行隔开。保证每份代码都是正确的。

输出格式

对于每份代码,输出程序打印出的字符串最长可以是多少。如果程序可能死循环,输出$infinity$。保证答案不会超过$10^9$。