# HG changeset patch # User Jordi GutiƩrrez Hermoso # Date 1426106660 14400 # Node ID 9f485ecdc2a920e75c820c3438ce98a95f02d892 # Parent 77a7215db2fca8e5f00f51c1da2b2e8c46369d4c process_options: new function to handle CLI args diff --git a/optim.py b/optim.py --- a/optim.py +++ b/optim.py @@ -5,6 +5,28 @@ Machine = namedtuple("Machine", ["day", "buy", "sell", "profit", "maxprofit"]) Case = namedtuple("Case", ["machines", "days", "capital"]) +from argparse import ArgumentParser + +def process_options(): + parser = ArgumentParser( + description=("Solve problem F.")) + parser.add_argument("file", help = "input file to read") + parser.add_argument("--debug", dest = "debug", action = "store_true", + help = "enable debug output") + + algorithm = parser.add_mutually_exclusive_group(required = False) + + algorithm.add_argument("-b", "--brute-force", dest = "brute_force", + action = "store_true", + help = "Use brute force, O(2**N) time") + algorithm.add_argument("-g", "--greedy", dest = "greedy", + action = "store_true", default = True, + help = ("Use greedy algorithm, fails for some cases, " + "roughly O(N) time")) + + args = parser.parse_args() + return args + def parseinput(fname): """ Parse the input file, forget about input validation