突击期的最大里程题目描述长征途中,为了在保存红军体力的同时加快战略转移,指挥部决定设立一个为期 W 天的“战略突击期”。由于翻雪山、过草地地形复杂,完全要求每天匀速行军是不现实的。指挥部制定了严格的评估标准:在这连续的 W 天内,任何相邻两天的行军里程差的绝对值都不能超过 D 公里。如果存在相邻两天的差值严格大于 D,则会发生“剧烈颠簸”,该 W 天的突击期将被视为不合格。请在给定的 N 天行军记录中,找出所有合格的“战略突击期”,并计算在这些合格的突击期中,这 W 天的行军总里程最大是多少。如果没有找到任何一个合格的突击期,则输出 -1。输入描述第一行包含三个正整数 N, W, D,分别表示总记录天数、突击期的天数要求、以及相邻两天的最大允许里程差。第二行包含 N 个非负整数 a1, a2, ..., aN,表示这 N 天里每天的行军里程。输出描述输出一个整数,表示在所有合格的“战略突击期”中,这 W 天的行军总里程的最大值。如果没有合格的突击期,输出 -1。样例输入7 3 2 10 11 10 15 16 14 20 样例输出 45
正确答案:参考程序(Python):N,W,D=map(int,input().split());a=list(map(int,input().split()));best=-1;s=sum(a[:W]);ok=all(abs(a[i+1]-a[i])<=D for i in range(W-1));if ok:best=s;for i in range(W,N):s+=a[i]-a[i-W];if all(abs(a[j+1]-a[j])<=D for j in range(i-W+1,i)):best=max(
试卷来源:2026信息素养大赛星火征途C++小高组(小学4-6年级)复赛真题