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;
}

 

转载于:https://www.cnblogs.com/mgxj/p/5528775.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值