题意:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1093
这题,我给一个比较好点的测试数据吧,(可能没AC的都倒在了第二组数据上了)
2
abA
aA
1
AAAAAA
2
Aa
Aa
答案:
3
1
4
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
using namespace std;
const int N = 1009;
int n;
int re[N][2];
int as[N];
int inline oor(char a)
{
if(a>='a'&&a<='z') return 1;
else return 2;
}
void init()
{
char a[109];
memset(as,0,sizeof(as));
int len ;
for(int i=1;i<=n;i++)
{
scanf("%s",a);
len = strlen(a);
for(int j=1;j<len;j++)
if(oor(a[j-1])!=oor(a[j]))
as[i]++;
re[i][0]=oor(a[0]);
re[i][1]=oor(a[len-1]);
}
}
void solve()
{
int ans=0;
for(int i=1;i<=n;i++) ans+=as[i];
int b1=0,b2=0;
int d=0;
for(int i=1;i<=n;i++)
if(re[i][0]==1&&re[i][1]==2) b1++;
else if(re[i][0]==2&&re[i][1]==1) b2++;
else if(re[i][0]==2&&re[i][1]==2) d=1;
ans+=min(abs(b1-b2-1),abs(b1-b2));
if(b1==0&&b2==0&&d==1) ans++;
printf("%d\n",ans);
}
int main()
{
freopen("in.txt","r",stdin);
while(~scanf("%d",&n))
{
init();
solve();
}
return 0;
}