您的位置:首页 > 编程语言 > Go语言

Codeforces 592A. PawnChess

2015-11-16 13:41 387 查看
题目链接:http://codeforces.com/problemset/problem/592/A

题        意:有一个8*8的棋盘,A先走,B后走,每次A可以操纵一个W棋子向上走B可以操作一个棋子向下走,如果路上被挡住了,那就不能走了。然后问你,谁会第一个走到上下边界位置。

思    路:直接模拟过程就可以了。

代码如下:#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <cmath>
#include <cstring>
using namespace std;
typedef __int64 LL;

int main()
{
char v[9][9];
while( scanf ( "%s", v[1] ) != EOF )
{
int ans1 = 101, ans2 = 101;
for( int i = 2; i <= 8; i ++ )
scanf ( "%s", v[i] );
for( int i = 0; i < 8; i ++ )
{
for( int j = 1; j < 9; j ++ )
{
if( v[j][i] == 'B' ) continue;
if( v[j][i] == 'W' )
{
int f = 1;
for( int k = j-1; k > 0; k -- )//看路上是否有阻碍
if( v[k][i] != '.' )
{
f = 0;
break;
}
if( f ) ans1 = min( ans1, j-1 );
}
}
for( int j = 8; j > 0; j -- )
{
if( v[j][i] == 'W' ) continue;
if( v[j][i] == 'B' )
{
int f = 1;
for( int k = j+1; k < 9; k ++ )//看路上是否有阻碍
if( v[k][i] != '.' )
{
f = 0;
break;
}
if( f ) ans2 = min( ans2, 8-j );
}
}
}
if( ans1 <= ans2 )
{
printf("A\n");
}
else printf("B\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  algorithm codeforces