Problem A:队伍(team)

Problem A:队伍(team)

Time Limit:1000MS Memory Limit:65536K
Total Submit:46 Accepted:18

Description

问题描述:
蛋糕分好了,小朋友排着队去领蛋糕。铭铭想从 N 人的队伍中选出 K 位小朋友帮忙分发蛋糕。但铭铭选人 的方法有点特别,他想从队伍中选连续的 K 个小朋友, 而且必须是男比女多,你知道铭铭有多少种选择吗?
输入格式:
第一行, 两个整数 N, 代表队伍中有 N [N:0~1000000] 个小朋友,铭铭想选 K[K小于N]个人。 第二行:有 N 个 0 或 1[0 代表男,1 代表女],每个数用空格隔开。
输出格式:
输出一个整数。代表铭铭可以有多少种选择方案。
输入样例:
10
3
0 1 1 0 0 1 0 1 0 1
输出样例:
4

#include<cstdio>
using namespace std;
int a[1000010];
int main()
{
	int n,k,s=0,l=1,h,nan=0,nv=0;
	scanf("%d%d",&n,&k);
	h=k;
	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
	for(int i=1;i<=k;i++) 
	{
		if(a[i]==1) nv++;
		else nan++;
	}
	for(int i=1;i<=n-k+1;i++)
	{
		if(nan>nv) s++;
		h++;
		if(a[h]==1) nv++;
		else nan++;
		if(a[l]==1) nv--;
		else nan--;
		l++;	
	} 
	printf("%d",s);
	return 0;
}



版权声明:本文为qq_26600209原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。