char *puzzel[] = { " ", " T ", " SSS ", " RERER ", " TEEKERS ", " SKKKKKKKT ", " TREEEEEEESS ", " EKERRKRRKTREK ", " RKSESSSESER ", " STTEKTTKT ", " SSSRSSS ", " RRRRR ", " EEE ", " K ", " "}; int sol[15][15]; int find(i, j, str) int i, j; char *str; { if (*str == puzzel[i][j]) if (str[1] == '\0') { sol[i][j]++; return 1; } else { int sum = 0; sum += find(i + 1, j , str + 1); sum += find(i + 1, j + 1, str + 1); sum += find(i , j + 1, str + 1); sum += find(i - 1, j + 1, str + 1); sum += find(i - 1, j , str + 1); sum += find(i - 1, j - 1, str + 1); sum += find(i , j - 1, str + 1); sum += find(i + 1, j - 1, str + 1); sol[i][j] += sum; return sum; } return 0; } main() { int i,j, sum; for (i = 0; i < 15; i++) for (j = 0; j < 15; j++) sol[i][j] = 0; for (i = 1; i < 14; i++) for (j = 1; j < 14; j++) find(i,j, "KERST"); sum = 0; for (i = 0; i < 15; i++) { for (j = 0; j < 15; j++) { printf("%c %2d ", puzzel[i][j], sol[i][j]); if (puzzel[i][j] == 'K') sum += sol[i][j]; } printf("\n"); } printf("\ntotal %d\n", sum); }