I was solving this problem https://www.codechef.com/problems/COVERING and sort of came with a subproblem which is Given an array A and array B with size (2^N) . [cut] Compute another array X of size (2^N) such that [cut] X[mask] = sum of (A[i] * B[j]) such that ( (i&j) == mask ) . [cut] How to solve it or is it solvable for N <= 20 .