Example #1
0
        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;
        }
Example #2
0
        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);
        }
Example #3
0
        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();
            }
        }
Example #4
0
 static void SolveWithUltrasolver(int taskNumber)
 {
     UltraSolver.SolveAndShow(taskNumber);
 }