#include #define MAXD (10) #define MAXF (5) static char mz[MAXD][MAXD]; static int n, w, h; static int vis[MAXD][MAXD]; static int cnt, sum, nbr; struct orientation { int x,y; }; static struct orientation rel[MAXF]; int seen(int y,int x) { if (x<0 || x>=w || y<0 || y>=h) return 1; else return (vis[y][x]!=0) || (mz[y][x] != 'X'); } static int cnt; static void dfs(int x,int y,int ant) { int i,iseen = 0; for (i=0;i=sum) found = search(y,x+1,k-1); if (k==nbr) return found; } } return found; } int search_factors() { int k, found = 0; for (k=2;k