CodeForces 592A

题意:在8*8棋盘里,有黑白棋,F1选手(W棋往上-->最后至目标点:第1行)先走,F2选手(B棋往下-->最后至目标点:第8行)其次。棋子数不一定相等,F1,F2中其中一个           棋子最先到达目标点对应方胜利。

思路:W,B棋子分别只能上、下,所以需知道:离第一行最近的W棋距离S1(并且这个W上方没有B),离第八行最近的B棋距离S2(这个B下方没有W)

        胜利者为 S1<=S2?F1:F2

注意:S1==S2时 F1胜。

代码:

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 using namespace std;
 5 
 6 char mp[10][10];
 7 
 8 int main()
 9 {
10     for(int i=0;i<8;i++)
11         scanf("%s",mp[i]);
12     int minb=10,minw=10,fw,fb,flagb;
13     for(int i=0;i<8;i++)
14     {
15         fw=10;fb=10;flagb=0;
16         for(int j=0;j<8;j++)
17         {
18             if(mp[j][i]=='W')
19             {
20                 if(flagb==0)
21                     fw=min(fw,j);
22                 else
23                     fb=10;
24             }
25             if(mp[j][i]=='B')
26             {
27 
28                 flagb=1;
29                 fb=min(8-j-1,fb);
30             }
31         }
32         minb=min(minb,fb);
33         minw=min(minw,fw);
34     }
35     if(minb>=minw)
36         printf("A\n");
37     else
38         printf("B\n");
39 }
View Code

相关文章: