按照讲解思路写的,不知道为什么有些测试点WA……
#include<iostream>
using namespace std;
long long cnt[1000005],cnt0,cnt1,ans,sum,n;
string s[1000000];
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>s[i];
if(s[i][0]=='1')
cnt1++;
else
cnt0++;
sum+=s[i].size();
}
char c;
if(cnt0>=cnt1)
c='0';
else
c='1';
while(sum)
{
long long tmp=ans;
for(int i=1;i<=n;i++)
while(cnt[i]<s[i].size() && s[i][cnt[i]]==c)
cnt[i]++,sum--,ans++;
if(ans!=tmp)
ans--;
if(c=='0')
c='1';
else
c='0';
}
cout<<ans;
return 0;
}
#4,#5,#8,#16,#18,#19,#20,#21,#23都比正确答案少1。