예제 #1
0
 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?
 }
예제 #2
0
 private static void ParseTL(InputParameters input, string value)
 {
     input.TimeLimitSec = int.Parse(value);
 }
예제 #3
0
 private static void ParsePower(InputParameters input, string value)
 {
     input.PowerPhrases.Add(value);
 }
예제 #4
0
 private static void ParseML(InputParameters input, string value)
 {
     input.MemoryLimitMb = int.Parse(value);
 }
예제 #5
0
 private static void ParseFilename(InputParameters input, string value)
 {
     input.InputFilename = value;
 }
예제 #6
0
 private static void ParseCores(InputParameters input, string value)
 {
     input.Cores = int.Parse(value);
 }