题意:有A,B两个人,A使用的是W的棋子,B使用的是B的棋子,总是A先走,且A只能往上面走,B只能朝下面走,并且在棋子行走的那条线上不能有其他的棋子阻挡。问最后是A先到上边边界还是B先到下边边界。
特别注意的一点就是A先走,如果A和B的步数是相同的,那么是A赢咯
最主要的还是题意。
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
char s[10][10];
int main()
{
while(~scanf("%s",s[0]))
{
for(int i=1;i<8;i++)
scanf("%s",s[i]);
int ma=10;
int mb=10;
for(int i=0;i<8;i++)
{
for(int j=0;j<8;j++)
{
int flag=0;
if(s[i][j]=='W')
{
for(int k=0;k<i;k++)
{
if(s[k][j]!='.')
{
flag=1;
break;
}
}
if(flag==0)
{
ma=min(ma,i);//找出对于A最小的步数
}
}
int cnt=0;
if(s[i][j]=='B')
{
for(int k=i+1;k<8;k++)
{
if(s[k][j]!='.')
{
flag=1;
break;
}
}
if(flag==0)
{
mb=min(mb,8-i-1);找出对于B来说最小的步数
}
}
}
}
if(ma<=mb)
printf("A\n");
else
printf("B\n");
}
}