PersonalCorpus 版 (精华区)

1121762 2002/09/27 05:15:22.270 Accepted
0:00.000 64 18188 C++ 10363 - Tic Tac Toe


void main()
{
#ifndef ONLINE_JUDGE
    freopen("c:\\0acm\\uva\\contest9-21\\iB","r",stdin);
    freopen("c:\\0acm\\uva\\contest9-21\\oB","w",stdout);
#endif

    int i,j,n,t,to,tx;
    char s[3][3];
    bool m[5];

    scanf("%d\n",&t);
    while (t>0) {
        t--;
        gets(s[0]);
        gets(s[1]);
        gets(s[2]);
        to=0; tx=0;
        for (i=0;i<3;i++) for (j=0;j<3;j++) {
            if (s[i][j]=='O') to++;
            if (s[i][j]=='X') tx++;
        }
        if (!((tx-to==1)||(tx==to))) {
            printf("no\n");
            gets(s[0]); continue;
        }
        m[0]=m[1]=m[2]=m[3]=m[4]=false;
        for (i=0;i<3;i++)
            if ((s[i][0]==s[i][1])&&(s[i][0]==s[i][2])&&(s[i][0]!='.
')) m[i]=true;
        if ((s[0][0]==s[1][1])&&(s[0][0]==s[2][2])&&(s[0][0]!='.')) 
m[3]=true;
        if ((s[0][2]==s[1][1])&&(s[0][2]==s[2][0])&&(s[2][0]!='.')) 
m[4]=true;
        if (m[0]&&m[1]&&(s[0][0]==s[1][0])) {
            printf("no\n");
            gets(s[0]); continue;
        }
        if (m[0]&&m[2]&&(s[0][0]==s[2][0])) {
            printf("no\n");
            gets(s[0]); continue;
        }
        if (m[2]&&m[1]&&(s[2][0]==s[1][0])) {
            printf("no\n");
            gets(s[0]); continue;
        }
        if (tx==to) {
            if (m[0]&&(s[0][0]=='X')) {
                printf("no\n");
                gets(s[0]); continue;
            }
            if (m[1]&&(s[1][0]=='X')) {
                printf("no\n");
                gets(s[0]); continue;
            }
            if (m[2]&&(s[2][0]=='X')) {
                printf("no\n");
                gets(s[0]); continue;
            }
            if (m[3]&&(s[1][1]=='X')) {
                printf("no\n");
                gets(s[0]); continue;
            }
            if (m[4]&&(s[1][1]=='X')) {
                printf("no\n");
                gets(s[0]); continue;
            }
        }
        if (tx==to+1) {
            if (m[0]&&(s[0][0]=='O')) {
                printf("no\n");
                gets(s[0]); continue;
            }
            if (m[1]&&(s[1][0]=='O')) {
                printf("no\n");
                gets(s[0]); continue;
            }
            if (m[2]&&(s[2][0]=='O')) {
                printf("no\n");
                gets(s[0]); continue;
            }
            if (m[3]&&(s[1][1]=='O')) {
                printf("no\n");
                gets(s[0]); continue;
            }
            if (m[4]&&(s[1][1]=='O')) {
                printf("no\n");
                gets(s[0]); continue;
            }
        }


        m[0]=m[1]=m[2]=false;
        for (i=0;i<3;i++)
            if ((s[0][i]==s[1][i])&&(s[0][i]==s[2][i])&&(s[0][i]!='.
')) m[i]=true;
        if (m[0]&&m[1]&&(s[0][0]==s[0][1])) {
            printf("no\n");
            gets(s[0]); continue;
        }
        if (m[0]&&m[2]&&(s[0][0]==s[0][2])) {
            printf("no\n");
            gets(s[0]); continue;
        }
        if (m[2]&&m[1]&&(s[0][2]==s[0][1])) {
            printf("no\n");
            gets(s[0]); continue;
        }

        if (tx==to) {
            if (m[0]&&(s[0][0]=='X')) {
                printf("no\n");
                gets(s[0]); continue;
            }
            if (m[1]&&(s[0][1]=='X')) {
                printf("no\n");
                gets(s[0]); continue;
            }
            if (m[2]&&(s[0][2]=='X')) {
                printf("no\n");
                gets(s[0]); continue;
            }
        }

        if (tx==to+1) {
            if (m[0]&&(s[0][0]=='O')) {
                printf("no\n");
                gets(s[0]); continue;
            }
            if (m[1]&&(s[0][1]=='O')) {
                printf("no\n");
                gets(s[0]); continue;
            }
            if (m[2]&&(s[0][2]=='O')) {
                printf("no\n");
                gets(s[0]); continue;
            }
        }
        printf("yes\n");
        gets(s[0]);
    }
}
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.610毫秒