#ABC128D. 双端队列
双端队列
双端队列
题目描述
你从朋友那里收到了一个 dequeue 作为生日礼物。
是一根左右很长的筒,里面一列排着 颗宝石。
宝石的价值从左到右依次为 。有时候也会塞着价值为负的宝石。
一开始,你一颗宝石也没有。
你可以对 执行以下 4 种操作中任意一种,最多进行 次:
-
操作 A:取出 中最左端的宝石并得到它。若 为空,则无法执行此操作。
-
操作 B:取出 中最右端的宝石并得到它。若 为空,则无法执行此操作。
-
操作 C:从你拥有的宝石中选 1 颗,塞到 的最左端。若你没有宝石,则无法执行此操作。
-
操作 D:从你拥有的宝石中选 1 颗,塞到 的最右端。若你没有宝石,则无法执行此操作。
求操作结束后你所拥有的宝石价值总和的最大值。
输入格式
输入按以下格式从标准输入给出:
输出格式
输出操作结束后你所拥有的宝石价值总和的最大值。
样例
6 4
-10 8 2 1 2 6
14
按下面的顺序操作,可以分别得到 1 颗价值 和 1 颗价值 的宝石,此时价值总和 最大。
-
执行操作 A,从 的左端取出价值 的宝石。
-
执行操作 B,从 的右端取出价值 的宝石。
-
执行操作 A,从 的左端取出价值 的宝石。
-
执行操作 D,把价值 的宝石塞到 的右端。
6 4
-6 -100 50 -2 -5 -3
44
6 3
-6 -100 50 -2 -5 -3
0
不执行任何操作是最优的。
数据范围
- 输入均为整数。
难度
普及+/提高-
通过率
—
尝试
0
已通过
0
- ID
- 1713
- 类型
- 传统题
- Time Limit
- 2000ms
- Memory Limit
- 1024MiB
- 上传者