10_signalstrength.py 396 B

123456789101112
  1. #!/usr/bin/env python3
  2. import sys
  3. from itertools import accumulate, islice, tee
  4. strengths, positions = tee(accumulate(
  5. int(word) if word[-1].isdigit() else 0
  6. for word in ('1 ' + sys.stdin.read()).split()))
  7. print(sum((i + 1) * x for i, x in islice(enumerate(strengths), 19, None, 40)))
  8. for row in range(6):
  9. print(''.join('.#'[abs(next(positions) - col) <= 1] for col in range(40)))