0分求助!
查看原帖
0分求助!
1378097
zjinyi楼主2025/1/23 19:18

样例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;
}
2025/1/23 19:18
加载中...