#include <iostream>
#include <cstdio>
using namespace std;
int lowbit(int i) { return i & (-i); }
void build(int MAX_N)
{
for (int i = 1; i <= MAX_N; i++)
{
for (int j = i - 2; j >= i - lowbit(i); j--)
printf("i: %2d, j: %4d\n", i, j);
printf("\n");
}
}
int main() {
build(11);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IGxvd2JpdChpbnQgaSkgeyByZXR1cm4gaSAmICgtaSk7IH0KCnZvaWQgYnVpbGQoaW50IE1BWF9OKQp7IAogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gTUFYX047IGkrKykKICAgIHsKICAgICAgICBmb3IgKGludCBqID0gaSAtIDI7IGogPj0gaSAtIGxvd2JpdChpKTsgai0tKQogICAgICAgICAgICBwcmludGYoImk6ICUyZCwgajogJTRkXG4iLCBpLCBqKTsKICAgICAgICBwcmludGYoIlxuIik7CiAgICB9Cn0KCmludCBtYWluKCkgewoJYnVpbGQoMTEpOwoJcmV0dXJuIDA7Cn0=
i: 2, j: 0
i: 4, j: 2
i: 4, j: 1
i: 4, j: 0
i: 6, j: 4
i: 8, j: 6
i: 8, j: 5
i: 8, j: 4
i: 8, j: 3
i: 8, j: 2
i: 8, j: 1
i: 8, j: 0
i: 10, j: 8