某集团网站建设规划书,深圳小语种网站建设,重庆市建设工程施工安全管理网官网,装饰公司师大排名标题#xff1a;补种未成活胡杨 | 时间限制#xff1a;1秒 | 内存限制#xff1a;262144K 近些年来#xff0c;我国防沙治沙取得显著成果。某沙漠新种植N棵胡杨#xff08;编号1-N#xff09;#xff0c;排成一排。一个月后#xff0c;有M棵胡杨未能成活。 现可补种胡杨…标题补种未成活胡杨 | 时间限制1秒 | 内存限制262144K 近些年来我国防沙治沙取得显著成果。某沙漠新种植N棵胡杨编号1-N排成一排。一个月后有M棵胡杨未能成活。 现可补种胡杨K棵请问如何补种只能补种不能新种可以得到最多的连续胡杨树 输入描述: N 总种植数量 1N100000 M 未成活胡杨数量 1MN M 个空格分隔的数按编号从小到大排列 K 最多可以补种的数量 0KM 输出描述: 最多的连续胡杨棵树 示例1 输入 5 2 2 4 1 输出 3 说明 补种到2或4结果一样最多的连续胡杨棵树都是3 示例2 输入 10 3 2 4 7 1 输出 6 说明 补种第7棵树最多的连续胡杨棵树为6(5,6,7,8,9,10)
#include stdio.h
#include string.h
#include math.h
#include stdlib.hint main()
{int n, m, k;scanf(%d, n);scanf(%d, m);int *Ms malloc(sizeof(int) * m);for (int i 0; i m; i) {scanf(%d, Ms[i]);}scanf(%d, k); //补/** 开始补种滑动窗口首先知道补充也必须是连续的才可能获得最大连续棵树* 然后设定左右指针保证中间有K棵树补种*/int max 0;for (int i 0; i m; i) {int le 0;int ri n;if (i 0) {le Ms[i - 1];}if (i k m) {ri Ms[i k] - 1;}int temp ri - le;if (temp max) {max temp;}}printf(%d\n, max);
}