12_potplants.py 765 B

12345678910111213141516171819202122232425
  1. #!/usr/bin/env python3
  2. import sys
  3. initial = sys.stdin.readline().split()[-1].replace('.', ' ')
  4. sys.stdin.readline()
  5. trans = dict(tuple(line.rstrip().replace('.', ' ').split(' => '))
  6. for line in sys.stdin)
  7. def spread(iters):
  8. offset = 0
  9. pattern = initial
  10. for i in range(iters):
  11. pattern = ' ' + pattern + ' '
  12. leftpad = ''.join(trans.get(pattern[i - 2: i + 3], ' ')
  13. for i in range(2, len(pattern) - 2)).rstrip()
  14. stripped = leftpad.lstrip()
  15. offset += len(leftpad) - len(stripped) - 2
  16. pattern = stripped
  17. return sum(i + offset for i, c in enumerate(pattern) if c == '#')
  18. print(spread(20))
  19. n = 500
  20. a = spread(n)
  21. b = spread(n + 1)
  22. print(a + (b - a) * (50000000000 - n))