Advertisement
pacho_the_python

aladins_gift

Jun 6th, 2022
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.49 KB | None | 0 0
  1. from collections import deque
  2.  
  3.  
  4. def sum_material_magic(a, b):
  5.     return a + b
  6.  
  7.  
  8. def present_creating(result_sum):
  9.     if result_sum in gem_range:
  10.         wedding_presents["Gemstone"] += 1
  11.  
  12.     elif result_sum in porcelain_range:
  13.         wedding_presents["Porcelain Sculpture"] += 1
  14.  
  15.     elif result_sum in gold_range:
  16.         wedding_presents["Gold"] += 1
  17.  
  18.     elif result_sum in diamond_range:
  19.         wedding_presents["Diamond Jewellery"] += 1
  20.  
  21.  
  22. def under_100(fail_result, material, magic):
  23.     if fail_result % 2 == 0:
  24.         even_result = (material * 2) + (magic * 3)
  25.         return even_result
  26.     elif fail_result % 2 != 0:
  27.         odd_result = (material + magic) * 2
  28.         return odd_result
  29.  
  30.  
  31. def more_then_499(failed_result):
  32.     return failed_result // 2
  33.  
  34.  
  35. gem_range = [gem for gem in range(100, 199 + 1)]
  36. porcelain_range = [porcelain for porcelain in range(200, 299, + 1)]
  37. gold_range = [gold for gold in range(300, 399 + 1)]
  38. diamond_range = [diamond for diamond in range(400, 499 + 1)]
  39.  
  40. wedding_presents = {"Gemstone": 0, "Porcelain Sculpture": 0, "Gold": 0, "Diamond Jewellery": 0}
  41. # wedding_presents = {}
  42.  
  43. # materials = [105, 20, 30, 25]
  44. # magic_level = deque([120, 60, 11, 400, 10, 1])
  45. materials = list(map(int, input().split()))
  46. magic_level = deque(map(int, input().split()))
  47.  
  48. while materials and magic_level:
  49.     current_material = materials.pop()
  50.     current_magic = magic_level.popleft()
  51.     result = sum_material_magic(current_material, current_magic)
  52.  
  53.     if result < 100:
  54.         new_result = under_100(result, current_material, current_magic)
  55.         if new_result in range(100, 499 + 1):
  56.             present_creating(new_result)
  57.  
  58.     elif result >= 500:
  59.         upgrade_result = more_then_499(result)
  60.         if upgrade_result in range(100, 499 + 1):
  61.             present_creating(upgrade_result)
  62.  
  63.     elif 100 <= result <= 499:
  64.         present_creating(result)
  65.  
  66. if wedding_presents["Gemstone"] > 0 and wedding_presents["Porcelain Sculpture"] > 0 or wedding_presents["Gold"] > 0 \
  67.         and wedding_presents["Diamond Jewellery"] > 0:
  68.     print("The wedding presents are made!")
  69. else:
  70.     print("Aladdin does not have enough wedding presents.")
  71.  
  72. if materials:
  73.     print(f"Materials left: {', '.join(map(str, materials))}")
  74.  
  75. if magic_level:
  76.     print(f"Magic left: {', '.join(map(str, magic_level))}")
  77.  
  78. sorted_dict = sorted(wedding_presents.items())
  79. for present, number in sorted_dict:
  80.     if number > 0:
  81.         print(f"{present}: {number}")
  82.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement