#3597. 【国庆集训 Day3C】前进

【国庆集训 Day3C】前进

题意描述

你在玩一个古老的游戏。

给定一个 2×n2\times n 的格子,最初你站在第一列,即你的左脚和右脚分别在第一行和第二行的第一列。

之后每一步,你可以选择一只脚向前移动若干格,即从第 xx 行第 ii 列移动到第 xx 行第 jj 列,要求 i<j≤ni < j \le n。并将第 xx 行第 jj 列的格子上的权值累加到答案中。注意权值可能为负数。

并且由于腿长限制,任意时刻两只脚相隔的列不能超过 kk。形式化的,假定左脚在第 ii 列,右脚在第 jj 列,则任意时刻需要满足 ∣i−j∣≤k|i-j|\le k。

问最后两只脚都移动到第 nn 列,答案的最大值。

**注意:**第一列格子的权值也要累加到答案中。

输入格式

第一行两个正整数 n,kn,k,分别表示两个序列的长度,以及两脚任意时刻距离限制。

第二行 nn 个整数,表示 a1,a2,⋯ ,ana_1,a_2,\cdots ,a_n,表示第一行格子的权值。

第三行 nn 个整数,表示 b1,b2,⋯ ,bnb_1,b_2,\cdots ,b_n,表示第二行格子的权值。

输出格式

一行一个整数表示最大权值。

样例输入 1

4 1
0 2 2 8
0 -10 5 2

样例输出 1

19

样例输入 2

7 2
0 -10 -6 2 -10 0 0
5 3 -2 -1 -10 -10 0

样例输出 2

9

数据范围及提示

对于所有数据,满足 k≤n≤105,∣ai∣,∣bi∣≤104k\leq n\leq 10^5,|a_i|,|b_i|\leq 10^4。

  • subtask1(10pts10\text{pts}):满足 n≤300n\leq 300。
  • subtask2(20pts20\text{pts}):满足 ai,bia_i,b_i 均为 00 或 −1-1。
  • subtask3(20pts20\text{pts}):满足 n≤3000n\leq 3000。
  • subtask4(50pts50\text{pts}):无特殊限制。