| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- import os, argparse
- def solve_task(lines):
- index = 1
- indices = []
- left = None
- right = None
- for line in lines:
- if line == "":
- if compare(left, right):
- indices.append(index)
- left = None
- right = None
- index += 1
- elif left is None:
- left = eval(line)
- elif right is None:
- right = eval(line)
- else:
- exit(-1)
- if compare(left, right):
- indices.append(index)
-
- print(f"Indices in correct order: {indices}")
- print(f"Sum gives {sum(indices)}")
- def compare(left,right):
- if isinstance(left, int) and isinstance(right, int):
- if left == right:
- return "undetermined"
- else:
- return left < right
- elif isinstance(left, int):
- return compare([left], right)
- elif isinstance(right, int):
- return compare(left, [right])
- else:
- for i in range(min(len(left), len(right))):
- comp = compare(left[i], right[i])
- if comp == "undetermined":
- continue
- else:
- return comp
- if len(left) < len(right):
- return True
- elif len(right) < len(left):
- return False
- else:
- return "undetermined"
- def read_lines(filename):
- lines = []
- with open(filename) as infile:
- for raw_line in infile:
- line = raw_line.rstrip()
- lines.append(line)
- return lines
- def parse_arguments():
- parser = argparse.ArgumentParser(description="Script that solves the case",epilog="Have a nice day!")
- parser.add_argument('filename', nargs='?', default="example.txt", help='Input file')
- args = parser.parse_args()
- return args
- def main():
- args = parse_arguments()
- lines = read_lines(args.filename)
- solve_task(lines)
- if __name__ == "__main__":
- main()
|