求助,样例过了,但是全wa
  • 板块P1101 单词方阵
  • 楼主lym61
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/1/7 00:47
  • 上次更新2024/1/7 11:23:42
查看原帖
求助,样例过了,但是全wa
1158336
lym61楼主2024/1/7 00:47
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdbool.h>
int n, dir[8][2] = { {1,1},{1,0},{1,-1},{0,1},{0,-1},{-1,1},{-1,0},{-1,-1} };
char arr[101][101],str[] = "yizhong";
bool v[101][101];
void dfs(int x,int y,int s,int t)
{

	if (arr[x][y] != str[s]) return;
	if (s == 6) {
		for (int i = 1; i <= 7; i++)
		{
			v[x][y] = true;
			x -= dir[t][0];
			y -= dir[t][1];
		}
	}
	if (x + dir[t][0] < 0 || x + dir[t][0] >= n || y + dir[t][1] < 0 || y + dir[t][1] >= n) return;
	else dfs(x + dir[t][0], y + dir[t][1], s + 1, t);


}
int main()
{
	scanf("%d", &n);

	for (int i = 0; i < n; i++)
	{
		getchar();
		for (int j = 0; j < n; j++)
		{
			scanf("%c", &arr[i][j]);
		}
	}
    
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			if (arr[i][j] == str[0]) {
				for (int z = 0; z < 8; z++)
				{
					dfs(i, j, 0, z);
				}
			}
		}
	}

	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			if (v[i][j]) printf("%c", arr[i][j]);
			else putchar('*');
		}
		putchar('\n');
	}

	return 0;
}
2024/1/7 00:47
加载中...