题目链接:http://codeforces.com/contest/1028/problem/A
题意是给了一个n*m的矩阵,矩阵中有'W''B'两种字符,其中'B'字符是是一个奇数边的矩形,要求输出中间的'B'字符的坐标。
我的写法是正着遍历找到左上角的'B',再倒着遍历找到右下角的'B',然后横纵坐标相加除以2。
AC代码:
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n,m;
char pre[120][120];
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++){
scanf("%s",pre[i]);
}
int a,b,c,d;
int flag = 0;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(pre[i][j] == 'B'){
a = i;
b = j;
flag = 1;
break;
}
}
if(flag)break;
}
flag = 0;
for(int i=n-1;i>=0;i--){
for(int j=m-1;j>=0;j--){
if(pre[i][j] == 'B'){
c = i;
d = j;
flag = 1;
break;
}
}
if(flag)break;
}
cout<<(a+c+2)/2<<" "<<(b+d+2)/2<<endl;
return 0;
}