HDU 2539 点球大战

http://acm.hdu.edu.cn/showproblem.php?pid=2539

无聊题,可能会有人名开头小写的数据,所以一定要倒着找no,我这种写法是中间出了点故障,导致写的很麻烦,不足取

View Code
#include <iostream>
#include <string>
using namespace std ;
int main()
{
    int n;
    while(scanf("%d%*c",&n),n)
    {
        int flag1[10],flag2[10];
        char str[101];
        int ans1=0,ans2=0;
        int p=0;
        int cnt1=0,cnt2=0;
        for(int i=1;i<=n;i++)
        {
            gets(str);
            int len=strlen(str);
            for(int j=1;j<len;j++)
            {
                if(str[len-5]==' '&&str[len-6]=='o'&&str[len-7]=='n'&&str[len-8]==' ')
                {
                    if(p)
                        flag2[cnt2++]=0;
                    else
                        flag1[cnt1++]=0;
                    p^=1;
                    break;
                }
                else
                {
                    if(p)
                    {
                        ans2++;                    
                        flag2[cnt2++]=1;
                    }
                    else 
                    {
                        ans1++;
                        flag1[cnt1++]=1;
                    }
                    p^=1;
                    break;
                }
            }
        }
        int f=0;
        if(n&1){
            f=1;
            n++;
        }
        for(int i=1;i<=(n>>1);i++)
            printf("%d ",i);
        printf("Score\n");
        for(int i=0;i<(n>>1);i++)
        {
            if(flag1[i])
                printf("O ");
            else 
                printf("X ");
        }
        printf("%d\n",ans1);
        if(f)
        {
            for(int i=0;i<(n>>1)-1;i++)
            {
                if(flag2[i])
                    printf("O ");
                else
                    printf("X ");
            }
            printf("- ");
            printf("%d\n",ans2);
        }
        else
        {
            for(int i=0;i<(n>>1);i++)
            {
                if(flag2[i])
                    printf("O ");
                else
                    printf("X ");
            }
            printf("%d\n",ans2);
        }
    }
    return 0;
}
原文地址:https://www.cnblogs.com/xiaohongmao/p/2520293.html