2064 - 【入门】三人行必有我师

通过次数

35

提交次数

93

时间限制 : 1 秒
内存限制 : 128 MB

子曰:“三人行,必有我师”。人越多,可请教的也越多。假设有 n 个人排成一列,每个人的知识值是一个整数,现在我们想要选取 k 个连续的人,使得这 k 个人的知识值之和最大,请你输出这个最大值。

输入

输入包含 2 行:

  • 第一行有两个整数 n, k(1 \leq k \leq n \leq 10 ^ 5),表示人的总数和要选的连续的人数
  • 第二行有 n 个空格隔开的整数 t_i(1 \leq t_i \leq 10 ^ 9),为每个人的知识值

输出

输出为一个整数,为连续 k 个人的知识值之和的最大值

样例

输入

5 3
1 2 2 3 1

输出

7

提示

解法一:首先求出前缀和,再依次枚举 k 个人下标的起点,通过前缀和数组相减求出 k 个人的知识值之和。

解法二:可以采用“滑动窗口的方法”,首先计算前 k 个人的知识值之和,作为初始窗口,之后每次减去最左侧的值,在最右侧添加一个新的值,就可以依次得到第 2 \sim k + 13 \sim k + 24 \sim k + 3...... 个人的知识值之和,同时求最大值即可