CodeForces 592 A.PawnChess(水~)

Description
两个人在一个8*8的棋盘上下棋,先手下白子,每次只能将一颗白子上移一格(如果上一个为空,即既没有白子也没有黑子),后手下黑子,每次只能将一颗黑子下移一格(如果下一个为空),如果任意一个白子到达第一行先手赢,如果任意一个黑子到达第8行后手赢,现给出这块棋盘,两人足够机智,问谁赢
Input
一个8*8字符矩阵,B表示黑子,W表示白子,*表示空
Output
如果先手赢则输出A,否则输出B
Sample Input
这里写图片描述
Sample Output
A
Solution
数据量很小暴力枚举得到两人获胜所需最小步数作比较即可
Code

#include<stdio.h>
#include<string.h>
#define min(x,y) ((x)<(y)?(x):(y))
int main()
{
    char map[9][9];
    for(int i=0;i<8;i++)
        scanf("%s",&map[i]);
    int minw=8,minb=8;
    for(int i=0;i<8;i++)
        for(int j=0;j<8;j++)
        {
            if(map[i][j]=='W')
            {
                int temp=0;
                for(int k=i-1;k>=0;k--)
                    if(map[k][j]=='.') temp++;
                    else temp=8;
                minw=min(minw,temp);
            }
            else if(map[i][j]=='B')
            {
                int temp=0;
                for(int k=i+1;k<8;k++)
                    if(map[k][j]=='.') temp++;
                    else temp=8;
                minb=min(minb,temp);
            }
        }
    if(minw<=minb) printf("A\n");
    else printf("B\n");
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值