Advertisement
pacho_the_python

Untitled

Jan 16th, 2023
875
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.41 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 = {
  41.     "Gemstone": 0,
  42.     "Porcelain Sculpture": 0,
  43.     "Gold": 0,
  44.     "Diamond Jewellery": 0
  45. }
  46.  
  47. materials = list(map(int, input().split()))
  48. magic_level = deque(map(int, input().split()))
  49.  
  50. while materials and magic_level:
  51.     current_material = materials.pop()
  52.     current_magic = magic_level.popleft()
  53.     result = sum_material_magic(current_material, current_magic)
  54.  
  55.     if result < 100:
  56.         new_result = under_100(result, current_material, current_magic)
  57.         if new_result in range(100, 499 + 1):
  58.             present_creating(new_result)
  59.  
  60.     elif result >= 500:
  61.         upgrade_result = more_then_499(result)
  62.         if upgrade_result in range(100, 499 + 1):
  63.             present_creating(upgrade_result)
  64.  
  65.     elif 100 <= result <= 499:
  66.         present_creating(result)
  67.  
  68. if wedding_presents["Gemstone"] > 0 and wedding_presents["Porcelain Sculpture"] > 0 or wedding_presents["Gold"] > 0 \
  69.         and wedding_presents["Diamond Jewellery"] > 0:
  70.     print("The wedding presents are made!")
  71. else:
  72.     print("Aladdin does not have enough wedding presents.")
  73.  
  74. if materials:
  75.     print(f"Materials left: {', '.join(map(str, materials))}")
  76.  
  77. if magic_level:
  78.     print(f"Magic left: {', '.join(map(str, magic_level))}")
  79.  
  80. sorted_dict = sorted(wedding_presents.items())
  81. for present, number in sorted_dict:
  82.     if number > 0:
  83.         print(f"{present}: {number}")
  84.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement