题目描述
小朋友排队领蛋糕,铭铭想从队伍中选出K位小朋友帮忙分发蛋糕,但铭铭选人的方法有点特别,他想从队伍中选连续的k个小朋友,而且必须男比女多,你知道铭铭有多少种选择吗?
输入
第一行输入两个整数。N代表队伍中有N个小朋友,铭铭想从其中选出K个人(0<K<N)
第二行 有个N个0或1(0代表男,1代表女)每个数用空格隔开。
输出
输出一个整数,代表铭铭可以有多少种选择方案。
var
n,k,i, j,boycount,count: Integer; {n小朋友总数, k为选出的人数,i,j 索引值,boycount为男生数目,count为符合男多女少的组合数目}
list: array[1..1000] of byte; {数列}
begin
Read(n);
Read(k);
for i := 1 to n do Read(list[i]);
i:=1;
while i<=(n-k) do
begin
j:=i;
boycount:=0;
while j<i+k do
begin
if(list[j]=0) then inc(boycount);
inc(j);
end;
if(boycount>k-boycount) then inc(count);
inc(i);
end;
writeln(count);
Readln;
end.
泪奔,本写法只得了50分,老师说可以用游标,每次不要全部统计,可增量统计。
虽然个人不以为然,觉得机器器统计一次还不是小 意思,然而当老师把数字调整为80000的时候,我还是认了怂。实现重要,方法重要。
增量方式改天贴一下。
网友评论