#include<bits/stdc++.h>
using namespace std;

const int N = 110;

char cmp[8] = {' ' , 'y' , 'i' , 'z' , 'h' , 'o' , 'n' , 'g'};
char a[N][N];
bool b[N][N];

void dfs(int n , int a1 , int b1 , int way)
{
	if(n == 7 and a[a1][b1] == cmp[n])
	{
		if(way == 1)
		{
			int a2 = a1;
			int b2 = b1;
			for(int i = 0 ; i < n ; i ++)
			{
				b[a2 ++][b2 ++] = 1;
			}
		}
		
	}
	if(way == 5)
	{
		if(a[a1 - 1][b1 - 1] == 'i' and a1 >= 7 and b1 >= 7) dfs(n + 1 , a1 - 1 , b1 - 1 , 1);
		if(a[a1][b1 - 1] == 'i' and b1 >= 7) dfs(n + 1 , a1 , b1 - 1 , 2);
		if(a[a1 - 1][b1 - 1] == 'i' and a1 >= 7 and b1 >= 7) dfs(n + 1 , a1 + 1 , b1 - 1 , 1);
	}
	if(way == 1)
	{
		if(a[a1][b1] == cmp[n]) dfs(n + 1 , a1 - 1 , b1 - 1 , 1);
		else return; 
	}
	if(way == 2)
	{
		if(a[a1][b1] == cmp[n]) dfs(n + 1 , a1 , b1 - 1 , 1);
		else return; 
	}
}
int main()
{
	int n;
	cin >> n;
	for(int i = 1 ; i <= n ; i ++)
	{
		for(int j = 1 ; j <= n ; j ++)
		{
			cin >> a[i][j];
		}
	}
	
	for(int i = 0 ; i < n ; i ++)
	{
		for(int j = 0 ; j < n ; j ++)
		{
			if(a[i][j] == 'y') dfs(1 , i , j , 5);
		}
	}
	
	
 }

2 comments

  • 1