#include<stdio.h>
#include<string.h>
int Norte(char cacapalavra[][100], char palavra[], int *pc, int *pl) {
int i, j, n, k;
j = *pc; k = 0;
for (i = *pl; i < i + n; i++) {
if (cacapalavra[i][j] != palavra[k]) return -1;
else k++;
}
*pl = i;
return 0;
}
int Sul(char cacapalavra[][100], char palavra[], int *pc, int *pl) {
int i, j, n, k;
j = *pc; k = 0;
for (i = *pl; i < i + n; i++) {
if (cacapalavra[i][j] != palavra[k]) return -1;
else k++;
}
*pl = i;
return 0;
}
int Leste(char cacapalavra[][100], char palavra[], int *pc, int *pl) {
int i, j, n, k;
i = *pl; k = 0;
for (j = *pc; j < j + n; j++) {
if (cacapalavra[i][j] != palavra[k]) return -1;
else k++;
}
*pc = j;
return 0;
}
int Oeste(char cacapalavra[][100], char palavra[], int *pc, int *pl) {
int i, j, n, k;
i = *pl; k = 0;
for (j = *pc; j < j + n; j--) {
if (cacapalavra[i][j] != palavra[k]) return -1;
else k++;
}
*pc = j;
return 0;
}
int Nordeste(char cacapalavra[][100], char palavra[], int *pc, int *pl) {
int i, j, n, k;
k = 0;
for (i = *pl, j = *pc; i < i + n; j++, i--) {
if (cacapalavra[i][j] != palavra[k]) return -1;
else k++;
}
*pl = i; *pc = j;
return 0;
}
int Noroeste(char cacapalavra[][100], char palavra[], int *pc, int *pl) {
int i, j, n, k;
k = 0;
for (i = *pl, j = *pc; i < i + n; j--, i--) {
if (cacapalavra[i][j] != palavra[k]) return -1;
else k++;
}
*pl = i; *pc = j;
return 0;
}
int Sudeste(char cacapalavra[][100], char palavra[], int *pc, int *pl) {
int i, j, n, k;
k = 0;
for (i = *pl, j = *pc; i < i + n; j--, i++) {
if (cacapalavra[i][j] != palavra[k]) return -1;
else k++;
}
*pl = i; *pc = j;
return 0;
}
int Sudoeste(char cacapalavra[][100], char palavra[], int *pc, int *pl) {
int i, j, n, k;
k = 0;
for (i = *pl, j = *pc; i < i + n; j++, i++) {
if (cacapalavra[i][j] != palavra[k]) return -1;
else k++;
}
*pl = i; *pc = j;
return 0;
}
int main () {
char cacapalavra [100][100];
char palavra [100];
int k = 0, n, *pc = 0, *pl = 0, aux;
for (int i
= 0; i
< n
; i
++) for (int j
= 0; j
< n
; j
++) scanf("%c", &cacapalavra
[i
][j
]); for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (palavra[k] == cacapalavra[i][j]) {
*pc = j; *pl = i;
aux = Norte(cacapalavra, palavra, pc, pl);
aux = Sul(cacapalavra, palavra, pc, pl);
aux = Leste(cacapalavra, palavra, pc, pl);
aux = Oeste(cacapalavra, palavra, pc, pl);
aux = Nordeste(cacapalavra, palavra, pc, pl);
aux = Noroeste(cacapalavra, palavra, pc, pl);
aux = Sudeste(cacapalavra, palavra, pc, pl);
aux = Sudoeste(cacapalavra, palavra, pc, pl);
printf("%d", aux
); //só para eliminar o warning que não foi usada. }
}
}
}
//https://pt.stackoverflow.com/q/155345/101
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RyaW5nLmg+CgoKaW50IE5vcnRlKGNoYXIgY2FjYXBhbGF2cmFbXVsxMDBdLCBjaGFyIHBhbGF2cmFbXSwgaW50ICpwYywgaW50ICpwbCkgewogICAgaW50IGksIGosIG4sIGs7CiAgICBqID0gKnBjOyBrID0gMDsKICAgIG4gPSBzdHJsZW4ocGFsYXZyYSk7CiAgICBmb3IgKGkgPSAqcGw7IGkgPCBpICsgbjsgaSsrKSB7CiAgICAgICAgaWYgKGNhY2FwYWxhdnJhW2ldW2pdICE9IHBhbGF2cmFba10pIHJldHVybiAtMTsKICAgICAgICBlbHNlIGsrKzsKICAgIH0KICAgICpwbCA9IGk7CiAgICByZXR1cm4gMDsKfQoKaW50IFN1bChjaGFyIGNhY2FwYWxhdnJhW11bMTAwXSwgY2hhciBwYWxhdnJhW10sIGludCAqcGMsIGludCAqcGwpIHsKICAgIGludCBpLCBqLCBuLCBrOwogICAgaiA9ICpwYzsgayA9IDA7CiAgICBuID0gc3RybGVuKHBhbGF2cmEpOwogICAgZm9yIChpID0gKnBsOyBpIDwgaSArIG47IGkrKykgewogICAgICAgIGlmIChjYWNhcGFsYXZyYVtpXVtqXSAhPSBwYWxhdnJhW2tdKSByZXR1cm4gLTE7CiAgICAgICAgZWxzZSBrKys7CiAgICB9CiAgICAqcGwgPSBpOwogICAgcmV0dXJuIDA7Cn0KCmludCBMZXN0ZShjaGFyIGNhY2FwYWxhdnJhW11bMTAwXSwgY2hhciBwYWxhdnJhW10sIGludCAqcGMsIGludCAqcGwpIHsKICAgIGludCBpLCBqLCBuLCBrOwogICAgaSA9ICpwbDsgayA9IDA7CiAgICBuID0gc3RybGVuKHBhbGF2cmEpOwogICAgZm9yIChqID0gKnBjOyBqIDwgaiArIG47IGorKykgewogICAgICAgIGlmIChjYWNhcGFsYXZyYVtpXVtqXSAhPSBwYWxhdnJhW2tdKSByZXR1cm4gLTE7CiAgICAgICAgZWxzZSBrKys7CiAgICB9CiAgICAqcGMgPSBqOwogICAgcmV0dXJuIDA7Cn0KCmludCBPZXN0ZShjaGFyIGNhY2FwYWxhdnJhW11bMTAwXSwgY2hhciBwYWxhdnJhW10sIGludCAqcGMsIGludCAqcGwpIHsKICAgIGludCBpLCBqLCBuLCBrOwogICAgaSA9ICpwbDsgayA9IDA7CiAgICBuID0gc3RybGVuKHBhbGF2cmEpOwogICAgZm9yIChqID0gKnBjOyBqIDwgaiArIG47IGotLSkgewogICAgICAgIGlmIChjYWNhcGFsYXZyYVtpXVtqXSAhPSBwYWxhdnJhW2tdKSByZXR1cm4gLTE7CiAgICAgICAgZWxzZSBrKys7CiAgICB9CiAgICAqcGMgPSBqOwogICAgcmV0dXJuIDA7Cn0KCmludCBOb3JkZXN0ZShjaGFyIGNhY2FwYWxhdnJhW11bMTAwXSwgY2hhciBwYWxhdnJhW10sIGludCAqcGMsIGludCAqcGwpIHsKICAgIGludCBpLCBqLCBuLCBrOwogICAgayA9IDA7CiAgICBuID0gc3RybGVuKHBhbGF2cmEpOwogICAgZm9yIChpID0gKnBsLCBqID0gKnBjOyBpIDwgaSArIG47IGorKywgaS0tKSB7CiAgICAgICAgaWYgKGNhY2FwYWxhdnJhW2ldW2pdICE9IHBhbGF2cmFba10pIHJldHVybiAtMTsKICAgICAgICBlbHNlIGsrKzsKICAgICB9CiAgICAgKnBsID0gaTsgKnBjID0gajsKICAgICByZXR1cm4gMDsKfQoKaW50IE5vcm9lc3RlKGNoYXIgY2FjYXBhbGF2cmFbXVsxMDBdLCBjaGFyIHBhbGF2cmFbXSwgaW50ICpwYywgaW50ICpwbCkgewogICAgIGludCBpLCBqLCBuLCBrOwogICAgIGsgPSAwOwogICAgIG4gPSBzdHJsZW4ocGFsYXZyYSk7CiAgICAgZm9yIChpID0gKnBsLCBqID0gKnBjOyBpIDwgaSArIG47IGotLSwgaS0tKSB7CiAgICAgICAgaWYgKGNhY2FwYWxhdnJhW2ldW2pdICE9IHBhbGF2cmFba10pIHJldHVybiAtMTsKICAgICAgICBlbHNlIGsrKzsKICAgICB9CiAgICAgKnBsID0gaTsgKnBjID0gajsKICAgICByZXR1cm4gMDsKfQoKaW50IFN1ZGVzdGUoY2hhciBjYWNhcGFsYXZyYVtdWzEwMF0sIGNoYXIgcGFsYXZyYVtdLCBpbnQgKnBjLCBpbnQgKnBsKSB7CiAgICBpbnQgaSwgaiwgbiwgazsKICAgIGsgPSAwOwogICAgbiA9IHN0cmxlbihwYWxhdnJhKTsKICAgIGZvciAoaSA9ICpwbCwgaiA9ICpwYzsgaSA8IGkgKyBuOyBqLS0sIGkrKykgewogICAgICAgIGlmIChjYWNhcGFsYXZyYVtpXVtqXSAhPSBwYWxhdnJhW2tdKSByZXR1cm4gLTE7CiAgICAgICAgZWxzZSBrKys7CiAgICB9CiAgICAqcGwgPSBpOyAqcGMgPSBqOwogICAgcmV0dXJuIDA7Cn0KCmludCBTdWRvZXN0ZShjaGFyIGNhY2FwYWxhdnJhW11bMTAwXSwgY2hhciBwYWxhdnJhW10sIGludCAqcGMsIGludCAqcGwpIHsKICAgIGludCBpLCBqLCBuLCBrOwogICAgayA9IDA7CiAgICBuID0gc3RybGVuKHBhbGF2cmEpOwogICAgZm9yIChpID0gKnBsLCBqID0gKnBjOyBpIDwgaSArIG47IGorKywgaSsrKSB7CiAgICAgICAgaWYgKGNhY2FwYWxhdnJhW2ldW2pdICE9IHBhbGF2cmFba10pIHJldHVybiAtMTsKICAgICAgICBlbHNlIGsrKzsKICAgIH0KICAgICpwbCA9IGk7ICpwYyA9IGo7CiAgICByZXR1cm4gMDsKfQoKaW50IG1haW4gKCkgewogICAgY2hhciBjYWNhcGFsYXZyYSBbMTAwXVsxMDBdOwogICAgY2hhciBwYWxhdnJhIFsxMDBdOwogICAgaW50IGsgPSAwLCBuLCAqcGMgPSAwLCAqcGwgPSAwLCBhdXg7CiAgICBzY2FuZiAoIiVkIiwgJm4pOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIGZvciAoaW50IGogPSAwOyBqIDwgbjsgaisrKSBzY2FuZigiJWMiLCAmY2FjYXBhbGF2cmFbaV1bal0pOwogICAgc2NhbmYgKCIlcyIsIHBhbGF2cmEpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG47IGorKykgewogICAgICAgICAgICBpZiAocGFsYXZyYVtrXSA9PSBjYWNhcGFsYXZyYVtpXVtqXSkgewogICAgICAgICAgICAgICAgKnBjID0gajsgKnBsID0gaTsKICAgICAgICAgICAgICAgIGF1eCA9IE5vcnRlKGNhY2FwYWxhdnJhLCBwYWxhdnJhLCBwYywgcGwpOwogICAgICAgICAgICAgICAgYXV4ID0gU3VsKGNhY2FwYWxhdnJhLCBwYWxhdnJhLCBwYywgcGwpOwogICAgICAgICAgICAgICAgYXV4ID0gTGVzdGUoY2FjYXBhbGF2cmEsIHBhbGF2cmEsIHBjLCBwbCk7CiAgICAgICAgICAgICAgICBhdXggPSBPZXN0ZShjYWNhcGFsYXZyYSwgcGFsYXZyYSwgcGMsIHBsKTsKICAgICAgICAgICAgICAgIGF1eCA9IE5vcmRlc3RlKGNhY2FwYWxhdnJhLCBwYWxhdnJhLCBwYywgcGwpOwogICAgICAgICAgICAgICAgYXV4ID0gTm9yb2VzdGUoY2FjYXBhbGF2cmEsIHBhbGF2cmEsIHBjLCBwbCk7CiAgICAgICAgICAgICAgICBhdXggPSBTdWRlc3RlKGNhY2FwYWxhdnJhLCBwYWxhdnJhLCBwYywgcGwpOwogICAgICAgICAgICAgICAgYXV4ID0gU3Vkb2VzdGUoY2FjYXBhbGF2cmEsIHBhbGF2cmEsIHBjLCBwbCk7CiAgICAgICAgICAgICAgICBwcmludGYoIiVkIiwgYXV4KTsgLy9zw7MgcGFyYSBlbGltaW5hciBvIHdhcm5pbmcgcXVlIG7Do28gZm9pIHVzYWRhLgogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgovL2h0dHBzOi8vcHQuc3RhY2tvdmVyZmxvdy5jb20vcS8xNTUzNDUvMTAx