求助
查看原帖
求助
457431
Li_wenjie楼主2022/3/10 19:55
#include<bits/stdc++.h>
using namespace std;
string s[1000001];
int count0(string& s)
{
	int ans=0;
	for(int i=0;s[i]=='0';)
	{
		s=s.substr(1,s.size()-1);
		ans++;
	}
	return ans;
}
int count1(string& s)
{
	int ans=0;
	for(int i=0;s[i]=='1';)
	{
		s=s.substr(1,s.size()-1);
		ans++;
	}
	return ans;
}
int main()
{
	int n;
	cin>>n;
	int ans0=0,ans1=0;
	for(int i=1;i<=n;i++)
	{
		cin>>s[i];
	}
	int p=n,q=1;
	while(p!=0)
	{
		p=n;
		q=!q;
		if(q==0)
			for(int i=1;i<=n;i++)
			{
				ans0+=count0(s[i]);
				if(s[i].empty()) p--;
			}	
		if(q==1)
			for(int i=1;i<=n;i++)
			{
				ans0+=count1(s[i]);
				if(s[i].empty()) p--;
			}
		ans0-=1;
	//	cout<<ans0<<" ";
	}
	p=n,q=0;
	while(p!=0)
	{
		p=n;
		q=!q;
		if(q==0)
			for(int i=1;i<=n;i++)
			{
				ans1+=count0(s[i]);
				if(s[i].empty()) p--;
			}	
		if(q==1)
			for(int i=1;i<=n;i++)
			{
				ans1+=count1(s[i]);
				if(s[i].empty()) p--;
			}
		ans1-=1;
	}
	cout<<max(ans0,ans1);
}
2022/3/10 19:55
加载中...