Advertisement
pacho_the_python

Elfes

Jan 24th, 2024
588
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.33 KB | None | 0 0
  1. from collections import deque
  2. elf_energies = deque([int(x) for x in input().split(' ')])
  3. boxes = [int(x) for x in input().split(' ')]
  4. turns_count = 0
  5. total_energy_spent = 0
  6. toys_count = 0
  7.  
  8. while boxes and elf_energies:
  9.     while elf_energies and elf_energies[0] < 5:
  10.         elf_energies.popleft()
  11.  
  12.     if not elf_energies:
  13.         break
  14.  
  15.     box = boxes.pop()
  16.     elf_energy = elf_energies.popleft()
  17.  
  18.     turns_count += 1
  19.  
  20.     toys_to_be_created_count = 1
  21.     energy_to_be_spent = box
  22.     energy_increase_factory = 1
  23.  
  24.     if turns_count % 3 == 0:
  25.         toys_to_be_created_count = 2
  26.         energy_to_be_spent *= 2
  27.     if turns_count % 5 == 0:
  28.         toys_to_be_created_count = 0
  29.         energy_increase_factory = 0
  30.  
  31.     if energy_to_be_spent <= elf_energy:
  32.         toys_count += toys_to_be_created_count
  33.         total_energy_spent += energy_to_be_spent
  34.         elf_energies.append(elf_energy - energy_to_be_spent + energy_increase_factory)
  35.     else:
  36.         boxes.append(box)
  37.         elf_energies.append(elf_energy * 2)
  38.  
  39. print(f'Toys: {toys_count}')
  40. print(f'Energy: {total_energy_spent}')
  41. if elf_energies:
  42.     elves_string = ', '.join(str(x) for x in elf_energies)
  43.     print(f'Elves left: {elves_string}')
  44. if boxes:
  45.     boxes_string = ', '.join(str(x) for x in boxes)
  46.     print(f'Boxes left: {boxes_string}')
  47.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement