#include <stdio.h>
char grid[5][5] = {
{'t', 'z', 'x', 'c', 'd'},
{'a', 'h', 'n', 'z', 'x'},
{'h', 'w', 'o', 'i', 'o'},
{'o', 'r', 'n', 'r', 'n'},
{'a', 'b', 'r', 'i', 'n'},
};
int n = 5;
int found = 0; // flag indicating if string has been found
void find(int i, int j, char *search) {
if (i >= n || j >= n || i < 0 || j < 0) {
return ;
}
if (search[0]=='\0') {
found = 1;
return ;
}
if (grid[i][j] == search[0]) {
find (i+1, j, search+1);
find (i, j+1, search+1);
find (i+1, j+1, search+1);
find (i-1, j, search+1);
find (i, j-1, search+1);
find (i-1, j-1, search+1);
}
}
int main() {
char s[] = {'h', 'o', 'r', 'i', 'z', 'o', 'n', '\0'}; // String to be searched
for(int i =0; i<n && !found;i++)
for(int j =0; j<n && !found;j++){
//printf("Searching %c\n", grid[i][j]);
find(i, j, s);
}
printf("%s\n", found ? "Found": "Not Found");
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgpjaGFyIGdyaWRbNV1bNV0gPSB7CiAgICB7J3QnLCAneicsICd4JywgJ2MnLCAnZCd9LAogICAgeydhJywgJ2gnLCAnbicsICd6JywgJ3gnfSwKICAgIHsnaCcsICd3JywgJ28nLCAnaScsICdvJ30sCiAgICB7J28nLCAncicsICduJywgJ3InLCAnbid9LAogICAgeydhJywgJ2InLCAncicsICdpJywgJ24nfSwKfTsKaW50IG4gPSA1OwppbnQgZm91bmQgPSAwOyAvLyBmbGFnIGluZGljYXRpbmcgaWYgc3RyaW5nIGhhcyBiZWVuIGZvdW5kCnZvaWQgZmluZChpbnQgaSwgaW50IGosIGNoYXIgKnNlYXJjaCkgewogICAgaWYgKGkgPj0gbiB8fCBqID49IG4gfHwgaSA8IDAgfHwgaiA8IDApIHsKICAgICAgICByZXR1cm4gOwogICAgfQoKICAgIGlmIChzZWFyY2hbMF09PSdcMCcpIHsKICAgICAgICBmb3VuZCA9IDE7CiAgICAgICAgcmV0dXJuIDsKICAgIH0KCiAgICBpZiAoZ3JpZFtpXVtqXSA9PSBzZWFyY2hbMF0pIHsKICAgICAgICBmaW5kIChpKzEsIGosIHNlYXJjaCsxKTsgCiAgICAgICAgZmluZCAoaSwgaisxLCBzZWFyY2grMSk7CiAgICAgICAgZmluZCAoaSsxLCBqKzEsIHNlYXJjaCsxKTsKICAgICAgICBmaW5kIChpLTEsIGosIHNlYXJjaCsxKTsKICAgICAgICBmaW5kIChpLCBqLTEsIHNlYXJjaCsxKTsKICAgICAgICBmaW5kIChpLTEsIGotMSwgc2VhcmNoKzEpOwogICAgfQp9CgoKaW50IG1haW4oKSB7CiAgICBjaGFyIHNbXSA9IHsnaCcsICdvJywgJ3InLCAnaScsICd6JywgJ28nLCAnbicsICdcMCd9OyAvLyBTdHJpbmcgdG8gYmUgc2VhcmNoZWQKICAgIGZvcihpbnQgaSA9MDsgaTxuICYmICFmb3VuZDtpKyspCiAgICBmb3IoaW50IGogPTA7IGo8biAmJiAhZm91bmQ7aisrKXsKICAgIAkvL3ByaW50ZigiU2VhcmNoaW5nICVjXG4iLCBncmlkW2ldW2pdKTsKICAgIAlmaW5kKGksIGosIHMpOwogICAgfQogICAgcHJpbnRmKCIlc1xuIiwgZm91bmQgPyAiRm91bmQiOiAiTm90IEZvdW5kIik7ICAgIAogICAgcmV0dXJuIDA7Cn0=