P7053 [NWRRC 2015] Fygon

题目描述

# [NWRRC2015] Fygon 翻译 弗雷德里克是一名年轻的程序员。他参加了所有能找到的编程比赛,并总是使用他最喜欢的编程语言 Fygon。不幸的是,他经常收到 "超过时间限制 "的结果,即使他的算法是渐近最优的。这是因为 Fygon 解释器非常慢。尽管如此,弗雷德里克还是非常喜欢 Fygon,所以他使用了非渐进优化的方法来使求解符合时间限制。为了方便起见,他要求你写一个程序,能够估算出他的 Fygon 程序所做的确切操作次数。 为了简单起见,我们假设 Fygon 只有两条语句。第一条语句是滞后的。它几乎可以替代任何其他语句。第二条语句是 for 循环: for in range $():$ 这意味着遍历从 $0$ 到 $-1$ 的值。 在 Fygon 中是从 $a$ 到 $z$ 的小写字母,并且要么是已经定义的,要么是正整数常数。循环语句缩进四个空格,至少包含一条语句。 程序接收变量 $n$ 的输入。该变量具有特殊含义,不能用作循环变量。您的任务是根据变量 $n$ 的值,找出计算 Fygon 程序执行滞后操作次数的公式。

输入格式

输入文件包含 Fygon 程序。没有两个循环使用相同的变量作为迭代器。范围内使用的每个变量要么是 $n$,要么是在某个外循环中声明的。 程序最多有 $20$ 语句,其中最多有 $6$ 是循环。所有整数常量从 $1$ 到 $9$ 不等。

输出格式

根据 $n$ 输出已执行滞后运算次数的公式。公式长度最多为 $100$ 字符(不包括空格)。公式应符合以下语法: $〈表达式〉 ::= 〈产物〉 ( (‘+' | ‘-') 〈产物〉) ^{ \times }$ $〈产物〉 ::= 〈价值〉 (‘ \times '〈价值〉) ^{ \times }$ $〈价值〉 ::= ‘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) ```

说明/提示

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