#include #include #include #define D(x) int atleastonefit; int go(int gx, int gy , int cx, int cy, int px, int py, int *thisfit) { if ((gx*cx <= px) && (gy*cy <= py)) { int cuts = 0, cuts1, cuts2; *thisfit = 1; atleastonefit=1; D(printf("[cutting: GRID: (%d %d) CARD: (%d %d)]\n",gx,gy,cx,cy)); if (gx*cx != px) { cuts++; D(printf("[cutting X]\n")); } if (gy*cy != py) { cuts++; D(printf("[cutting Y]\n")); } cuts1 = gx*(gy-1)+gx-1; cuts2 = gy*(gx-1)+gy-1; if (cuts1