因旱灾,许多的小树快干死了,现有N棵小树,第i棵小树(树的编号是0–N-1)维持生命需要的最少水量是w[i],现给你一总量为W的水,你可以任选一片连续的区间对小树进行浇灌(维持生命即可),编写函数,求可浇灌的最多树的数量。
函数接口定义:
int fun(int *w,int N,int W);
w是每棵小树需要最少水量的数组初地址。 N 表示树的数量。W是可用的总水量。
输入样例:
第一行两个正整数:树的数量N和总水量W。第二行是N个正整数(空格分隔)。
8 5
3 1 1 2 1 2 1 2
输出样例:
计算并返回利用所给水可灌溉的一片连续的小树最大数量。
4
说明:总水量是5,最多可浇的方案是:1,1,2,1(最多浇4棵小树)。
/* 请在这里填写答案 */`
int fun(int *w,int N,int W)
{
int max=0,flag,i,j=0,a;
while(1)
{
for(i=j,flag=0,a=W;a>0&&i<N;i++)
{
a=a-w[i];
flag++;
if(a<0) flag=flag-1;
}
if(max<flag) max=flag;
j++;
if(i==N) break;
}
return max;
}