题目描述

多边形是一个玩家在一个有 nn 个顶点的多边形上的游戏,如图所示,其中 n=4n=4。每个顶点用整数标记,每个边用符号 + (加)或符号 * (乘)标记。

第一步,删除其中一条边。随后每一步:

选择一条边连接的两个顶点 V1V1V2V2,用边上的运算符计算 V1V1V2V2 得到的结果来替换这两个顶点。

游戏结束时,只有一个顶点,没有多余的边。

如图所示,玩家先移除编号为 33 的边。之后,玩家选择计算编号为 11 的边,然后计算编号为 44 的边,最后,计算编号为 22 的边。结果是 00

这里每条边的运算符旁边的数字为边的编号,不拿来计算。

编写一个程序,给定一个多边形,计算最高可能的分数。

输入格式

输入一个有 nn 个顶点的多边形,它包含两行。

第一行是数字 nn ,为总边数。

第二行描述这个多边形,一共有 2n2n 个读入,每两个读入中第一个是字符,第二个是数字。

第一个字符为第一条边的计算符号:

  • tt 代表相加;
  • xx 代表相乘;

第二个代表顶点上的数字。首尾相连。

输出格式

第一行,输出最高的分数。

第二行,它必须写出所有可能的被清除后的边仍能得到最高得分的列表,必须严格递增。

输入数据 1

4
t -7 t 4 x 2 x 5

输出数据 1

33
1 2

数据范围

对于所有的数据:3n503 \le n \le 50,对于任何一系列的操作,顶点数字都在 [32768,32767][-32768,32767] 的范围内。

1 comments

  • 1

Information

ID
384
Time
1000ms
Memory
256MiB
Difficulty
8
Tags
# Submissions
23
Accepted
5
Uploaded By