예제 #1
0
        public static void Run(bool testingMode = false)
        {
            var activeIO   = testingMode ? testFileInOut : liveInOut;
            var lines      = activeIO.ReadStringInput(out numberOfCases);
            var cases      = new CaseSplitter().Configure_TakingNFromFirstValPlusOne().GetCaseLines(lines);
            var results    = new List <string>();
            var caseNumber = 0;
            var stopWatch  = new Stopwatch();

            foreach (var caseLines in cases)
            {
                caseNumber++; //1-indexed.
                stopWatch.Reset();
                stopWatch.Start();

                var parsedCase = new CaseInput(caseLines);
                var solver     = new CaseSolver(parsedCase);
                var result     = solver.Solve();
                var resultText = result.ToString();

                stopWatch.Stop();
                results.Add($"Case #{caseNumber}: {resultText}");
                if (testingMode)
                {
                    Console.WriteLine(stopWatch.ElapsedMilliseconds / 1000.0);
                }
            }

            activeIO.WriteOutput(results);
        }
예제 #2
0
        public static void Run(IGoogleCodeJamCommunicator io = null)
        {
            InOut = io ?? new GoogleCodeJam2018Communicator();
            var lines   = InOut.ReadStringInput(out numberOfCases);
            var cases   = new CaseSplitter().Configure_ConstantMultiLineCases(2).GetCaseLines(lines);
            var results = ProcessCases(cases);

            InOut.WriteOutput(results);
        }
예제 #3
0
        public void Run()
        {
            var lines   = InOut.ReadStringInput(out numberOfCases);
            var cases   = new CaseSplitter().GetSingleLineCases(lines).ToArray();
            var solver  = new CaseSolver();
            var results = new List <string>();

            for (int ii = 0; ii < numberOfCases; ii++)
            {
                var answer = solver.Solve(long.Parse(cases[ii]));
                results.Add(string.Format("Case #{0}: {1}", ii + 1, answer));
            }

            InOut.WriteOutput(results);
        }
예제 #4
0
        public static void Run()
        {
            var lines   = InOut.ReadStringInput(out numberOfCases).ToList();
            var cases   = new CaseSplitter().Configure_TakingNFromFirstVal().GetCaseLines(lines).ToArray();
            var results = new List <string>();

            for (int ii = 0; ii < numberOfCases; ii++)
            {
                var parsedCase = new CaseInput(cases[ii]);
                var solver     = new CaseSolver(parsedCase);
                var result     = solver.Solve();

                var resultText = result.ToString();

                results.Add(string.Format("Case #{0}: {1}", ii + 1, resultText));
            }

            InOut.WriteOutput(results);
        }
예제 #5
0
        public static void Run()
        {
            var lines   = InOut.ReadStringInput(out numberOfCases).ToList();
            var cases   = new CaseSplitter().Configure_ConstantMultiLineCases(2).GetCaseLines(lines).ToArray();
            var results = new List <string>();

            for (int ii = 0; ii < numberOfCases; ii++)
            {
                var parsedCase = new CaseInput(cases[ii].ToArray());
                var solver     = new CaseSolver(parsedCase);
                var result     = solver.Solve();

                var resultText = result.ToString();

                results.Add($"Case #{ii + 1}: {resultText}");
            }

            InOut.WriteOutput(results);
        }
예제 #6
0
        public static void Run()
        {
            var lines      = InOut.ReadStringInput(out numberOfCases);
            var cases      = new CaseSplitter().Configure_ConstantMultiLineCases(2).GetCaseLines(lines);
            var results    = new List <string>();
            var caseNumber = 0;

            foreach (var caseLines in cases)
            {
                caseNumber++; //1-indexed.
                var parsedCase = new CaseInput(caseLines);
                var solver     = new CaseSolver(parsedCase);
                var result     = solver.Solve();

                var resultText = result.ToString();

                results.Add($"Case #{caseNumber}: {resultText}");
            }

            InOut.WriteOutput(results);
        }
예제 #7
0
        public static void Run(IGoogleCodeJamCommunicator io = null)
        {
            InOut = io ?? new GoogleCodeJam2018Communicator();
            var lines      = InOut.ReadStringInput(out numberOfCases);
            var cases      = new CaseSplitter().Configure_TakingNFromFirstValPlusOne().GetCaseLines(lines);
            var results    = new List <string>();
            var caseNumber = 0;

            foreach (var caseLines in cases)
            {
                caseNumber++; //1-indexed.
                var parsedCase = new CaseInput(caseLines);
                var solver     = new CaseSolver(parsedCase);
                var result     = solver.Solve();

                var resultText = result.ToString();

                results.Add($"Case #{caseNumber}: {resultText}");
            }

            InOut.WriteOutput(results);
        }
예제 #8
0
 internal static CaseSplitter ConfigureSplitter(CaseSplitter inputSplitter)
 => inputSplitter.Configure_ConstantMultiLineCases(2);