编程题
### 问题描述 基德,一位在七大洲闻名的冒险家,他的探险生涯已经持续了 $N$ 年。在这些年份中,每一年都可以用一个整数 $A_i$ 来描述,这个数字代表了那一年的冒险收获。如果某一年的冒险收获丰富,那么 $A_i$ 会是一个正数;相反,如果那一年的冒险遭遇了困境,那么 $A_i$ 可能就会是一个负数。 每段探险历程可以用两个整数 $S$ 和 $F$ 描述,它们分别代表这段历程的开始和结束。当然,对于我们在这个问题中考虑的每一段历程,$S$ 都不会大于 $F$。 基德现在想要在他的冒险旅程中挑选两段历程,作为他最为引以为豪的探险经历,但是有一些规则需要遵守: 1. 两段历程不能有公共的年份。例如,历程 $[1, 5]$ 和历程 $[6, 7]$ 并无公共的年份; 2. 第一段历程应该早于第二段历程。例如,历程 $[1, 5]$ 早于历程 $[6, 7]$; 3. 两段历程不能太接近。在第一段历程结束和第二段历程开始之间,至少应该间隔 $K$ 年。例如,如果 $K$ 等于 $4$,那么我们可以选择历程 $[1, 5] $和历程 $[10, 10]$,但如果 $K$ 等于 $5$,那么就不能选择这两段历程了。 4. 在遵循以上规则的前提下,所选择的两段历程中的冒险收获总和应该尽可能大。 你的任务就是帮助基德选择这两段历程,并将这两段历程的冒险收获总和告诉他。 ### 输入格式 第一行输入两个整数 $N$ 和 $K$,分别表示基德的探险生涯持续了多少年,以及两段历程之间至少应该间隔多少年。 然后一行包含 $N$ 个空格分隔的整数 $A_1, A_2, ..., A_N$,表示每一年的冒险收获。 数据范围保证:$2 \leq N \leq 10^5$,$0 \leq K \leq 10^5$,$-10^9 \leq A_i \leq 10^9$,$K + 2 \leq N$。 ### 输出格式 输出一行,包含一个整数,表示所选择的两段历程的冒险收获总和。 ### 样例输入 ``` 6 0 5 -1 5 0 -1 9 ``` ### 样例输出 ``` 18 ``` ### 说明 对于测试数据,$N = 6$,$K = 0$,$A=\lbrace 5, -1, 5, 0, -1, 9 \rbrace$。最优的选择是选取第 $1、2、3$ 年和第 $6$ 年作为两段历程。但是这并不是唯一的最优选择。
查看答案
赣ICP备20007335号-2