static void Main(string[] args) { var goodTasks = new[] { 1, 2, 3, 4, 5, 6, 7, 11, 12, 13, 14, 15, 16, 17, 38, 39, 40, 41, 1131, 1903, 46 }; var nonRibbons = new[] { 4248, 4008, 4033, 1490, 4206 }; var ribbons = new[] { 5157, 5208, 5161 }; foreach (var task in goodTasks) { Console.WriteLine($"[ {task} ]"); UltraSolver.SolveAndSend(task, wait: false); } Console.ReadKey(); return; //Arithmetic.RationalTriangulate( // new Segment(new Vector(0,0), new Vector(3, 3)), // new Segment(new Vector(3, 3), new Vector(2, 6)), // new Vector(0, 0), // new Vector(2, 6)); //ShowRibbonStat(ribbons.Concat(nonRibbons)); //foreach (var e in goodTasks) // DrawProblem(5161); //UltraSolver.SolveAndShow(5161); //UltraSolver.SolveAndSend(41); // //SolveTask(5811,new Rational(1,37)); return; //SolveTask(21, 1);return; ///DrawPathGraph(49);return; //SolveAndSend(1763);// return; //че за упаковка // SolveAndSend(40);return; // SolveAndSendStrip(5811, new Rational(1,37)); //что не так с 42? // foreach (var e in goodTasks) SolveAndSend(e,false);Console.ReadKey(); // foreach (var e in goodTasks) SolveTask(e); //NewMain();return; }
public static double TrySolveAndSend(ProblemSpec problemSpec) { var res = 0.0; var t = new Thread(() => { var spec = UltraSolver.AutoSolve(problemSpec); res = Post(spec, problemSpec.id); }) { IsBackground = true }; t.Start(); if (!t.Join(5000)) { t.Abort(); t.Join(); } return(res); }
private static void SolveWithProjectionSolverRunner(ProblemSpec problemSpec) { var thread = new Thread(() => { try { var solution = UltraSolver.AutoSolve(problemSpec); if (solution == null || solution.Size() > 5000 || !solution.AreFacetsValid()) { return; } Console.WriteLine(" posting... "); var ps = ProblemsSender.Post(solution, problemSpec.id); Console.Write($" perfect score: {ps}"); } catch (Exception e) { if (e is ThreadAbortException) { return; } Console.WriteLine($"Exception in ProjectionSolverRunner: {e}"); } }) { IsBackground = true }; thread.Start(); if (!thread.Join(TimeSpan.FromSeconds(25))) { thread.Abort(); thread.Join(); } }
static void SolveWithUltrasolver(int taskNumber) { UltraSolver.SolveAndShow(taskNumber); }