样例1过了,却全WA,估计我赛时就是这样爆0的……
#include <iostream>
using namespace std;
char s[1001][1001];
bool flag[1001][1001], flag2[1001][1001];
int xx[4] = {0, 1, 0, -1}, yy[4] = {1, 0, -1, 0};
int main()
{
int t;
cin >> t;
while (t--)
{
int n, m, k;
cin >> n >> m >> k;
int x, y, d;
cin >> x >> y >> d;
x -= 1;
y -= 1;
flag2[x][y] = true;
for (int i = 0; i < n; ++i)
{
for (int j = 0; j < m; ++j)
{
cin >> s[i][j];
if (s[i][j] == '.')
{
flag[i][j] = true;
}
}
}
for (int i = 0; i < k; ++i)
{
int x2 = x + xx[d], y2 = y + yy[d];
if (x2 >= 0 && x2 < n && y2 >= 0 && y2 < m && flag[x2][y2] == true)
{
x = x2;
y = y2;
flag2[x][y] = true;
}
else
{
d += 1;
d %= 4;
}
}
int cnt = 0;
for (int i = 0; i < n; ++i)
{
for (int j = 0; j < m; ++j)
{
if (flag2[i][j] == true)
{
cnt += 1;
}
}
}
cout << cnt << endl;
}
return 0;
}