private static SolutionSpec TrySolve(ProblemSpec problem) { if (problem.Polygons.Length > 1 || !problem.Polygons.Single().IsConvex() || problem.Polygons.Single().GetSignedSquare() < 0) { return(null); } var problemPolygon = problem.Polygons[0]; return(ConvexPolygonSolver.TrySolveInBestShot(problem, problemPolygon.GetConvexBoundary())); }