CodeForces 592A

题意:在8*8的棋盘中有若干个黑(B)白(W)旗子,A每次把一枚白棋子往上移一步,B每次把一枚黑棋子往下移一步,一枚棋子不能移到另一枚棋子上,A把白棋子移到第一行,B把黑棋子移到第8行,A、B轮流移棋子,谁优先把一枚棋子移到指定位置谁就赢。输出谁赢。

题解:搜索一遍棋盘,找到白棋子可以到达第一行最短的步数,找到黑棋子到达第八行最短步数,比较两者的大小就可以

#include <iostream>
#include <cstdio>
using namespace std;

char mp[10][10];

int main()
{
    int A=10,B=10;
    int k;
    for(int i=0;i<8;i++)
        scanf("%s",mp[i]);
    for(int i=0;i<8;i++)
        for(int j=0;j<8;j++)
        {
            if(mp[i][j]=='W')
            {
                for(k=0;k<i;k++)
                    if(mp[k][j]=='B') break;
                if(k==i) A=min(A,i);
            }
            if(mp[i][j]=='B')
            {
                for( k=i;k<8;k++)
                    if(mp[k][j]=='W') break;
                if(k==8) B=min(B,7-i);
            }
        }
    //cout<<A<<B<<endl;
    if(A<=B) cout<<"A"<<endl;//A=B,A赢
    else cout<<"B"<<endl;
    return 0;
}

 

posted on 2016-05-25 22:26  猫哥小俊  阅读(149)  评论(0编辑  收藏  举报

导航