입력
9
3 5 1 4
WBWWW
BBBWB
WWBBB
4 3 2 1
BWW
BBW
WBB
WWB
2 3 2 2
WWW
WWW
2 2 1 1
WW
WB
5 9 5 9
WWWWWWWWW
WBWBWBBBW
WBBBWWBWW
WBWBWBBBW
WWWWWWWWW
1 1 1 1
B
1 1 1 1
W
1 2 1 1
WB
2 1 1 1
W
B
출력
구현 방식
-1
: 블랙이 하나라도 없는 경우
0
: (r,c) 에 있는 cell 이 블랙인 경우
1
: r 또는 c 행 렬 쪽에 블랙이 하나라도 있는 경우
2
: 블랙이 하나라도 있는 경우
영어로 풀려고 하니까,, 문제 이해 속도가 너무 느리다… 영어 공부좀 할걸
#include <string>
#include <cstring>
#include <vector>
#include <iostream>
#include <algorithm>
#include <queue>
#include <limits.h>
using namespace std;
void solution(int n, int m, int r, int c);
int main()
{
int T;
cin >> T;
for (int t = 1; t <= T; t++)
{
int n, m, r, c;
cin >> n >> m >> r >> c;
solution(n, m , r , c);
}
}
void solution(int n, int m , int r , int c)
{
int result = INT_MAX;
for (int row = 1; row <= n; row++)
{
for (int column = 1; column <= m; column++)
{
char cell;
cin >> cell;
if (cell == 'B')
{
if (row == r && column == c)
result = min(0,result);
else if (row == r || column == c)
result = min(1,result);
else
result = min(2,result);
}
}
}
if (result == INT_MAX)
cout << -1 << endl;
else
cout << result << endl;
}