T145827 「Beta2020」单调栈
题目描述
单调栈是一种很常用的数据结构。如果你不知道什么是单调栈,可以访问 [OI-Wiki 中的教程](https://oi-wiki.org/ds/monotonous-stack/)。
给定一个栈内元素单调递减的单调栈 $s$,其中有 $n$ 个元素。有一个 $m$ 个元素的数组,你需要在这个数组中选择**至多** $k$ 个元素(可以打乱顺序,允许不选),并将它们依次插入到单调栈中,使得最后单调栈内元素的和最大。
插入操作的伪代码如下:
```python
function insert(x):
while not s.empty() and s.top()
输入格式
第一行,三个正整数 $n,m,k$。
第二行,$n$ 个正整数,表示一开始 $s$ 中的元素。保证输入单调递减。
第三行,$m$ 个正整数,第 $i$ 个数为 $a_i$。
输出格式
一行,一个正整数,表示插入后单调栈内元素的和。
说明/提示
### 样例解释
样例一:
插入的元素依次为 $10,9,8$。可以证明这是最优的。
### 数据范围
**本题采用捆绑测试。**
| Subtask | $n,m\le$ | 分值 |
| :----------: | :----------: | :----------: |
| $1$ | $15$ |$10$ |
| $2$ | $10^3$|$20$ |
| $3$ | $10^6$ | $70$ |
对于所有的数据,$1\le n,m\le 10^6,1\le k\le m,1\le a_i,s_i\le10^9$。