using System.Diagnostics; class Program { static string ReadLine() => Console.ReadLine().Trim(); static int ReadInt() => int.Parse(ReadLine()); static long ReadLong() => long.Parse(ReadLine()); static int[] ReadIntArray() { string str = ReadLine(); return str != "" ? str.Split().Select(_ => int.Parse(_)).ToArray() : new int[0]; } static long[] ReadLongArray() { string str = ReadLine(); return str != "" ? str.Split().Select(_ => long.Parse(_)).ToArray() : new long[0]; } static (int, int) ReadInt2() { int[] vs = ReadIntArray(); return (vs[0], vs[1]); } static (int, int, int) ReadInt3() { int[] vs = ReadIntArray(); return (vs[0], vs[1], vs[2]); } static (int, int, int, int) ReadInt4() { int[] vs = ReadIntArray(); return (vs[0], vs[1], vs[2], vs[3]); } static (int, int, int, int, int) ReadInt5() { int[] vs = ReadIntArray(); return (vs[0], vs[1], vs[2], vs[3], vs[4]); } static (long, long) ReadLong2() { long[] vs = ReadLongArray(); return (vs[0], vs[1]); } static (long, long, long) ReadLong3() { long[] vs = ReadLongArray(); return (vs[0], vs[1], vs[2]); } static void Main() { SourceExpander.Expander.Expand(); (int N, int M) = ReadInt2(); int[] A = ReadIntArray(); int[] B = ReadIntArray(); int[] C = new int[N]; int[] plus = new int[N]; for (int i = 0; i < N; i++) { C[i] = A[i] - B[i]; if(C[i] > 0) plus[i] = C[i]; } long[] plus_sum = new long[N + 1]; for (int i = 0; i < N; i++) { plus_sum[i + 1] = plus_sum[i] + plus[i]; } long ans = 0; for (int i = 0; i + M - 1 < N; i++) { ans = Math.Max(ans, plus_sum[i + M] - plus_sum[i]); } Console.WriteLine(ans); } } #region Expanded by https://github.com/kzrnm/SourceExpander namespace SourceExpander{public class Expander{[Conditional("EXP")]public static void Expand(string inputFilePath=null,string outputFilePath=null,bool ignoreAnyError=true){}public static string ExpandString(string inputFilePath=null,bool ignoreAnyError=true){return "";}}} #endregion Expanded by https://github.com/kzrnm/SourceExpander