02_giftshop.py 714 B

1234567891011121314151617181920212223242526
  1. #!/usr/bin/env python3
  2. import sys
  3. def expand(inp):
  4. for range_str in inp.read().rstrip().split(','):
  5. l, r = range_str.split('-')
  6. yield from range(int(l), int(r) + 1)
  7. def repetitions(num):
  8. text = str(num)
  9. for reps in range(2, len(text) + 1):
  10. n, rem = divmod(len(text), reps)
  11. if rem == 0:
  12. batches = set(text[i:i + n] for i in range(0, len(text), n))
  13. if len(batches) == 1:
  14. return reps
  15. def filter_repeating(ids):
  16. for i in ids:
  17. reps = repetitions(i)
  18. if reps:
  19. yield i, reps
  20. reps = list(filter_repeating(expand(sys.stdin)))
  21. print(sum(i for i, reps in reps if reps == 2))
  22. print(sum(i for i, _ in reps))