题目描述
近些年来,我国防沙治沙取得显著成果。某沙漠新种植N棵胡杨(编号1-N),排成一排。
一个月后,有M棵胡杨未能成活。
现可补种胡杨K棵,请问如何补种(只能补种,不能新种),可以得到最多的连续胡杨树?
* 输入描述:
* N 总种植数量 1<=N<=100000 M 未成活胡杨数量 1<=M<=N M 个空格分隔的数,按编号从小到大排列 K 最多可以补种的数量 0<=K<=M
* 输出描述:
* 最多的连续胡杨棵树
* 示例1
* 输入
* 5
* 2
* 2 4
* 1
* 输出
* 3
#coding=utf-8; N=int(input("种植数量:")) M=int(input("未存活数量:")) M_number=list(map(int,input("未存活的编号:").strip().split())) K=int(input("补种数量:")) '''字符串1表示存活的树, 字符串0表示未存活的树 ''' str1='1'*N for i in M_number: str1=str1[0:i-1]+"0"+str1[i:] left,right,end=0,0,len(str1) max_len=0 while right<=end: if str1[left:right].count("0")<=K: max_len=max(max_len,len(str1[left:right])) right+=1 else: left+=1 print(max_len)