Advertisement
George_Ivanov05

yeah

Sep 22nd, 2021
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.48 KB | None | 0 0
  1. from collections import deque
  2.  
  3. materials_for_toys = [int(x) for x in input().split()]
  4. magic_level = [int(x) for x in input().split()]
  5.  
  6. present_magic = {
  7.     "Doll": 150,
  8.     "Wooden train": 250,
  9.     "Teddy bear": 300,
  10.     "Bicycle": 400
  11. }
  12.  
  13. number_crafted_toys = {
  14.     "Doll": 0,
  15.     "Wooden train": 0,
  16.     "Teddy bear": 0,
  17.     "Bicycle": 0,
  18. }
  19.  
  20. stack_material = []
  21. queue_magic_levels = deque(magic_level)
  22.  
  23. for i in materials_for_toys:
  24.     stack_material.append(i)
  25.  
  26. while True:
  27.     if len(queue_magic_levels) == 0 or len(stack_material) == 0:
  28.         break
  29.     current_material = stack_material.pop()
  30.     current_magic_level = queue_magic_levels.popleft()
  31.     multiplication = current_material * current_magic_level
  32.     if multiplication == present_magic["Doll"]:
  33.         number_crafted_toys["Doll"] += 1
  34.     elif multiplication == present_magic["Wooden train"]:
  35.         number_crafted_toys["Wooden train"] += 1
  36.     elif multiplication == present_magic["Teddy bear"]:
  37.         number_crafted_toys["Teddy bear"] += 1
  38.     elif multiplication == present_magic["Bicycle"]:
  39.         number_crafted_toys["Bicycle"] += 1
  40.  
  41.     if multiplication < 0:
  42.         total = current_material + current_magic_level
  43.         stack_material.append(total)
  44.     elif multiplication > 0 and (multiplication != present_magic["Doll"] and
  45.                                  multiplication != present_magic["Wooden train"] and
  46.                                  multiplication != present_magic["Teddy bear"] and
  47.                                  multiplication != present_magic["Bicycle"]):
  48.         current_material += 15
  49.         stack_material.append(current_material)
  50.     elif current_material == 0 or current_magic_level == 0:
  51.         if current_material > 0:
  52.             stack_material.append(current_material)
  53.         elif current_magic_level > 0:
  54.             queue_magic_levels.appendleft(current_magic_level)
  55.  
  56. if number_crafted_toys["Doll"] and number_crafted_toys["Wooden train"] \
  57.         or number_crafted_toys["Teddy bear"] and number_crafted_toys["Bicycle"] > 0:
  58.     print("The presents are crafted! Merry Christmas!")
  59. else:
  60.     print(f"No presents this Christmas!")
  61.  
  62. if len(stack_material) > 0:
  63.     print(f"Materials left: {', '.join(map(str, stack_material[::-1]))}")
  64.  
  65. if len(queue_magic_levels) > 0:
  66.     print(f"Magic left: {', '.join(map(str, queue_magic_levels))}")
  67.  
  68. for key, value in sorted(number_crafted_toys.items(), key=lambda x: x[0]):
  69.     if value > 0:
  70.         print(f"{key}: {value}")
  71.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement