#P14156. [ICPC 2022 Nanjing R] 聊天程序

[ICPC 2022 Nanjing R] 聊天程序

题目描述

您是国际聊天程序公司(International Chatting Program Company,ICPC)的研究员。今天,您在浏览研究数据时,发现了以下聊天记录。

SUA(2022/12/04 23:01:25)\textbf{SUA(2022/12/04 23:01:25)}

我已经用光了程序设计竞赛题目的点子!请给我一道关于序列的题目。

机器人(2022/12/04 23:01:27)\textbf{机器人(2022/12/04 23:01:27)}

当然可以,下面是一道关于序列的程序设计竞赛的题目。

给定一个长度为 nn 的整数序列 a1,a2,,ana_1, a_2, \cdots, a_n,同时给定另外四个整数 kkmmccdd,您的目标是最大化序列中第 kk 大的值。

为了达成这一目标,您可以进行以下操作至多一次:选择一个长度恰为 mm 的连续子数组,并将一个长度为 mm,首项为 cc,公差为 dd 的等差序列加到该连续子数组上。

更正式地,您可以选择一个整数 pp 满足 1pnm+11 \le p \le n - m + 1,并对于所有 0i<m0 \le i < m,将 ap+ia_{p + i} 增加 (c+di)(c + di)

求至多一次操作之后,序列中第 kk 大的值最大可能是多少。

序列中第 kk 大的值,指的是将序列从大到小排序后,位于序列第 kk 项的值。例如,序列 {5,7,1,9}\{5, 7, 1, 9\} 中,第 33 大的值为 55;而序列 {9,7,5,9}\{9, 7, 5, 9\} 中,第 33 大的值为 77

SUA(2022/12/05 00:15:17)\textbf{SUA(2022/12/05 00:15:17)}

这道题目好像很难!请告诉我它的解法。

机器人(2022/12/05 00:15:30)\textbf{机器人(2022/12/05 00:15:30)}

当然可以。首先,我们可以...

[数据删除]

遗憾的是,部分聊天记录由于硬盘损坏而丢失了。您为聊天程序可以创造程序设计竞赛的题目而感到非常惊奇。为了验证聊天程序是否能创造有效的题目,您决定尝试解决这道题目。

输入格式

每个测试文件仅有一组测试数据。

第一行输入五个整数 nnkkmmccdd1k,mn2×1051 \le k, m \le n \le 2 \times 10^50c,d1090 \le c, d \le 10^9)表示序列的长度,您的目标,等差序列的长度,首项和公差。

第二行输入 nn 个整数 a1,a2,,ana_1, a_2, \cdots, a_n0ai1090 \le a_i \le 10^9)表示给定的序列。

输出格式

输出一行一个整数,表示至多一次操作之后,序列中第 kk 大的值最大可能是多少。

6 4 3 1 2
1 1 4 5 1 4
4
7 3 2 4 0
1 9 1 9 8 1 0
9
8 3 5 0 0
2 0 2 2 1 2 1 8
2

提示

对于第一组样例数据,可以选择 p=3p = 3 使序列变为 {1,1,5,8,6,4}\{1, 1, 5, 8, 6, 4\}。序列中第 44 大的值为 44

对于第二组样例数据,可以选择 p=5p = 5 使序列变为 {1,9,1,9,12,5,0}\{1, 9, 1, 9, 12, 5, 0\}。序列中第 33 大的值为 99

对于第三组样例数据,容易发现操作不改变序列的值,因此我们选择不进行操作。序列中第 33 大的值为 22

:::align{center}

OpenAI ChatGPT 正在鼓励选手 :::