using System; public class PolyominoCovering { public int[] findSolution(int N, int[] grid, int[] tiles) { int[] ret=new int[N*N]; int penalty=-1000; int notCovered=-1; int minTile=2; int maxTile=7; int tileID=1; for (int r=0; r=minTile && tiles[length-minTile]>0 && product>bestProduct) { bestProduct=product; bestLength=length; } } if (bestLength==-1) ret[r*N+c]=notCovered; else { for (int k=0; k