QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 256 MB Total points: 100 Hackable ✓

#12524. 阿雷利亚山脉

Statistics

你是一位强大的巫师,正在穿越 Aarelia 王国。你的旅途经过一片陡峭的丘陵和山脉。山区可以表示为 $n$ 个区域的序列;每个区域都有其海拔 $h_i$。

不幸的是,你没有任何登山装备(坦白说,也没有登山技巧),而且你的飞行法术也已经耗尽。然而,当区域海拔形成一个非递减序列时,你将能够穿越该区域,即对于从 $1$ 到 $(n - 1)$ 的每个 $i$,都有 $h_i \le h_{i+1}$(你是从右向左行进的,高处的跌落对你没有威胁)。

唯一能帮助你的法术是“地震术”。该法术影响若干相邻的区域,并允许你改变它们的海拔。你知道 $m$ 种地震术;每种法术都有其作用范围 $l_i$(即受法术影响的相邻区域数量)、能量消耗 $c_i$,并且可以将所有受影响区域的海拔升高或降低 $1$(单个法术可以被施放以升高或降低区域海拔,但不能同时进行)。每种法术都可以应用于区域内任何长度为 $l_i$ 的区间,并且可以无限次施放(每次重复施放都需要支付能量消耗)。施放法术后,某些区域的海拔可能会变为负数。

确定是否可以通过改变地形使你能够安全地穿越该区域,如果可以,请找出你必须花费的最低总能量。

输入格式

第一行包含两个空格分隔的整数 $n$ 和 $m$ ($1 \le n, m \le 200$)。

第二行包含 $n$ 个空格分隔的整数 $h_i$ —— 区域的初始海拔 ($0 \le h_i \le 10^6$)。

接下来的 $m$ 行描述了你所知道的地震术种类。第 $i$ 行描述了法术种类,格式为 “$t_i \ l_i \ c_i$”;其中 $t_i$ 是字符 “+”(如果该法术允许将海拔升高 $1$)或 “-”(如果该法术允许将海拔降低 $1$);$l_i$ 和 $c_i$ 分别是法术的作用范围和能量消耗 ($1 \le l_i \le n, 1 \le c_i \le 10^6$)。

输出格式

如果可以穿越该区域,请打印必须花费的最低总能量,否则打印 $-1$。

样例

样例输入 1

3 2
3 2 1
+ 1 1
- 1 1

样例输出 1

2

样例输入 2

3 1
3 2 1
+ 2 1

样例输出 2

-1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.