code: def unique_array_sum_combinations(A, B, C, target):
      
      def check_sum(n, *nums):
          if sum(x for x in nums) == n:
              return (True, nums)
          else:
              return (False, nums)
  
      pro = itertools.product(A, B, C)
      func = partial(check_sum, target)
      sums = list(itertools.starmap(func, pro))
  
      res = set()
      for s in sums:
          if s[0] is True and s[1] not in res:
              res.add(s[1])
  
      return list(res)
docs: 1. Sort all the arrays - a,b,c. - This improves average time complexity.
      2. If c[i] < Sum, then look for Sum - c[i] in array a and b.
         When pair found, insert c[i], a[j] & b[k] into the result list.
         This can be done in O(n).
      3. Keep on doing the above procedure while going through complete c array.
  
      Complexity: O(n(m+p))