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