#!/usr/bin/env python3 import sys def fuel(crabs, x): return sum(abs(c-x) for c in crabs) def fuel_incr(crabs, x): return sum(sc[abs(c-x)] for c in crabs) if __name__ == '__main__': lines = open(sys.argv[1]).read().strip('\n\n').split('\n') # or split \n\n or sth similar nums = [int(i) for i in lines[0].split(",")] # challenge 1 res1 = str(min(fuel(nums, i) for i in range(max(nums)))) print("challenge 1:" +"\n" + res1 + "\n") # challenge 2 sc = [0] * (max(nums)+1) for i in range(max(nums)+1): sc[i] = sc[i-1] + i res2 = str(min(fuel_incr(nums, i) for i in range(max(nums)))) print("challenge 2:" +"\n" + res2 + "\n")