part2.py 464 B

12345678910111213141516
  1. import argparse
  2. import functools
  3. parser = argparse.ArgumentParser()
  4. parser.add_argument("ifile", type=argparse.FileType('r'))
  5. args = parser.parse_args()
  6. crabs = [int(x) for x in args.ifile.readline().split(',')]
  7. def sumOfSeq(start: int, end: int) -> int:
  8. # n⁄2 {2a + (n − 1) d}
  9. n = end
  10. d = 1
  11. return int(n * (2 * start + (n - 1)) / 2)
  12. print(min([sum([sumOfSeq(1, abs(start - pos)) for start in crabs]) for pos in range(0, len(crabs) + 1)]))