input: Write a function that takes a dictionary as an argument and returns an inverted dictionary. In the inverted dictionary, the keys are the values from the original dictionary and the values are lists of keys from the original dictionary that mapped to those values.
  
  def invert_dictionary(d):
      inverted_d = {}
  
      for key, value in d.items():
          if value not in inverted_d:
              inverted_d[value] = []
          inverted_d[value].append(key)
  
      return inverted_d
  
  assert invert_dictionary({'a': 1, 'b': 2, 'c': 1}) == {1: ['a', 'c'], 2: ['b']}
  assert invert_dictionary({'x': 'apple', 'y': 'banana', 'z': 'apple'}) == {'apple': ['x', 'z'], 'banana': ['y']}
  assert invert_dictionary({'q': 5, 'r': 5, 's': 5}) == {5: ['q', 'r', 's']}
  assert invert_dictionary({}) == {}
output: def invert_dictionary(d):
      inverted_d = {}
  
      for key, value in d.items():
          if value not in inverted_d:
              inverted_d[value] = []
          inverted_d[value].append(key)
  
      return inverted_d