#P7053. [NWRRC 2015] Fygon

[NWRRC 2015] Fygon

Description

[NWRRC2015] Fygon 翻译

弗雷德里克是一名年轻的程序员。他参加了所有能找到的编程比赛,并总是使用他最喜欢的编程语言 Fygon。不幸的是,他经常收到 "超过时间限制 "的结果,即使他的算法是渐近最优的。这是因为 Fygon 解释器非常慢。尽管如此,弗雷德里克还是非常喜欢 Fygon,所以他使用了非渐进优化的方法来使求解符合时间限制。为了方便起见,他要求你写一个程序,能够估算出他的 Fygon 程序所做的确切操作次数。

为了简单起见,我们假设 Fygon 只有两条语句。第一条语句是滞后的。它几乎可以替代任何其他语句。第二条语句是 for 循环:

for in range ():():

这意味着遍历从 001-1 的值。 在 Fygon 中是从 aazz 的小写字母,并且要么是已经定义的,要么是正整数常数。循环语句缩进四个空格,至少包含一条语句。

程序接收变量 nn 的输入。该变量具有特殊含义,不能用作循环变量。您的任务是根据变量 nn 的值,找出计算 Fygon 程序执行滞后操作次数的公式。

Input Format

输入文件包含 Fygon 程序。没有两个循环使用相同的变量作为迭代器。范围内使用的每个变量要么是 nn,要么是在某个外循环中声明的。

程序最多有 2020 语句,其中最多有 66 是循环。所有整数常量从 1199 不等。

Output Format

根据 nn 输出已执行滞后运算次数的公式。公式长度最多为 100100 字符(不包括空格)。公式应符合以下语法:

〈表达式〉::=〈产物〉((+)〈产物〉)×〈表达式〉 ::= 〈产物〉 ( (‘+' | ‘-') 〈产物〉) ^{ \times }

〈产物〉::=〈价值〉(×〈价值〉)×〈产物〉 ::= 〈价值〉 (‘ \times '〈价值〉) ^{ \times }

〈价值〉::=n〈数〉〈价值〉(〈表达式〉‘)〈价值〉 ::= ‘n' | 〈数〉 | ‘-'〈价值〉 | ‘('〈表达式〉‘)'

$〈数〉 ::= [‘0' \cdots ‘9'] ^{+} (‘/' [‘0' \cdots ‘9'] ^{+}) ^{?}$

样例 #1

样例输入 #1

for i in range(n):
    for j in range(i):
        lag
for x in range(5):
    for y in range(n):
        for z in range(n):
            lag
    lag

样例输出 #1

1/2 * n * (n-1) + 5 * (n*n + 1)
for i in range(n):
    for j in range(i):
        lag
for x in range(5):
    for y in range(n):
        for z in range(n):
            lag
    lag

1/2 * n * (n-1) + 5 * (n*n + 1)

Hint

时间限制:2 秒,内存限制:256 MB。