CSU 1093: Caps Lock

来源:互联网 发布:淘宝假ipad 编辑:程序博客网 时间:2024/04/28 15:23

题意: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;}