Consider the following problem:Let a $k$-wheel be defined as an indexed circularly linked list of $k$ integers. For example{3, 4, 9, -1, 6}  is a 5-wheel with 3 at position 0, 4 at position 1, and so on. A wheel supports the operation of rotation, so that a one-step rotation would turn the above wheel into{6, 3, 4, 9, -1}  now with 6 at position 0, 3 at position 1, and so on. Let $W_{N_k}$ be an ordered set of $N$ distinct $k$-wheels. Given some $W_{N_k}$ and some integer $t$, find a series of rotations such that$$\forall\ 0 \leq i < k, \sum_{N \in W} N_i = t$$In other words, if you laid out the wheels as a matrix, the sum of every column would be $t$. Assume that $W_{N_k}$ is constructed so that the solution is unique up to rotations of every element (i.e., there are exactly $k$ unique solutions that consist of taking one solution, then rotating every wheel in $W$ by the same number of steps).The trivial solution to this problem involves simply checking every possible rotation. Here is some pseudocode for that:function solve(wheels, index)    if wheels are solved:        return true    if index >= wheels.num_wheels:        return false    for each position 1..k:        if solve(index + 1) is true:            return true        else:            rotate wheels[index] by 1solve(wheels, 0)This is a pretty slow solution (something like $O(k^n)$). I'm wondering if it is possible to do this problem faster, and also if there is a name for it.
sum of like indices in circular lists
algorithms