06_realloc.py 587 B

1234567891011121314151617181920212223242526
  1. #!/usr/bin/env python3
  2. import sys
  3. def redistribute(banks):
  4. i = max(range(len(banks)), key=banks.__getitem__)
  5. blocks = banks[i]
  6. banks[i] = 0
  7. while blocks > 0:
  8. i = (i + 1) % len(banks)
  9. banks[i] += 1
  10. blocks -= 1
  11. def cycle_iter_len(banks):
  12. seen = set()
  13. cycles = 0
  14. tup = tuple(banks)
  15. while tup not in seen:
  16. seen.add(tup)
  17. redistribute(banks)
  18. tup = tuple(banks)
  19. cycles += 1
  20. return cycles
  21. banks = list(map(int, sys.stdin.readline().split()))
  22. print(cycle_iter_len(banks))
  23. print(cycle_iter_len(banks))