for (uint layer = 2; layer <= 256; layer *= 2) {
if ((i & (layer - 1)) == layer - 1) {
new_dist[i] += new_dist[i - (layer / 2)];
for (uint layer = 2; layer <= 256; layer *= 2) {
if ((i & (layer - 1)) == layer - 1) {
new_dist[i] += new_dist[i - (layer / 2)];