static void Main(string[] args) { var argsQueue = new Queue<string>(args); var inputParameters = new InputParameters(); try { while (argsQueue.Count > 0) { var keyValue = ParseNextArg(argsQueue); actions[keyValue.Item1](inputParameters, keyValue.Item2); } if (inputParameters.InputFilename == null) throw new Exception("MUST provide us with -f"); } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); Environment.Exit(111); } var problem = File.ReadAllText(inputParameters.InputFilename).ParseAsJson<Problem>(); var outputs = new List<Output>(); var problemSolver = ProblemSolverFactory.GetSolver(); foreach (var seed in problem.sourceSeeds) { var answer = problemSolver.Solve(problem, seed, inputParameters.PowerPhrases.ToArray()); outputs.Add(new Output { problemId = problem.id, seed = seed, tag = DateTime.Now.ToString("O"), solution = answer }); } Console.Write(outputs.ToJson()); //too big strng? }
private static void ParseTL(InputParameters input, string value) { input.TimeLimitSec = int.Parse(value); }
private static void ParsePower(InputParameters input, string value) { input.PowerPhrases.Add(value); }
private static void ParseML(InputParameters input, string value) { input.MemoryLimitMb = int.Parse(value); }
private static void ParseFilename(InputParameters input, string value) { input.InputFilename = value; }
private static void ParseCores(InputParameters input, string value) { input.Cores = int.Parse(value); }