(A, B, C, target)
return list(res)
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))
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.
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 .
def unique_array_sum_combinations(A, B, C, target):
    """
    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))
    """
    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)
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 )