天气预报(牛客)

本来以为是不难的一道题 但只得了40分
在尺取得时候写错啦
传送门

#include
using namespace std;
int main()
{
	int n,a,b,sum;
	cin>>n>>a>>b;
	string s;
	cin>>s;
	int l=0,r=0,x=0,y=0,q=0,p=0;
	long long ans=0;
	for(int i=0,j=0;i<s.size();i++)
	{
		if(s[i]=='0')
		x++;
		else
		y++;
		while(j<=i&&x>=a&&y>=b)//在这里的时候要加上一个条件判断 不能只让j加一次 
		{
			ans+=n-i;
			if(s[j]=='0')
			x--;
			else
			y--;
			j++;
		}
	}
	if(a+b==0)
	cout<<ans+1;
	else
	cout<<ans;
}

你可能感兴趣的:(思维,c语言,c++,数据结构)