/* Shao Miller - 2012-Oct-13 */
#include <stdio.h>
int main(void) {
register unsigned char shift;
register unsigned char * pos;
unsigned char stream[] = { 1, 2, 3, 4 };
register unsigned char * end;
for (
(shift = 1), (pos = stream), (end = stream + sizeof stream);
pos < end;
(shift <<= 1) ? 0 : (pos += ++shift)
) {
printf((shift
& *pos
) ? "1" : "0"); }
shift = 1;
pos = stream;
end = stream + sizeof stream;
while (pos < end) {
printf((shift
& *pos
) ? "1" : "0"); if (!(shift <<= 1))
pos += ++shift;
}
return 0;
}
ICAvKiBTaGFvIE1pbGxlciAtIDIwMTItT2N0LTEzICovCgogICNpbmNsdWRlIDxzdGRpby5oPgoKICBpbnQgbWFpbih2b2lkKSB7CiAgICAgIHJlZ2lzdGVyIHVuc2lnbmVkIGNoYXIgc2hpZnQ7CiAgICAgIHJlZ2lzdGVyIHVuc2lnbmVkIGNoYXIgKiBwb3M7CiAgICAgIHVuc2lnbmVkIGNoYXIgc3RyZWFtW10gPSB7IDEsIDIsIDMsIDQgfTsKICAgICAgcmVnaXN0ZXIgdW5zaWduZWQgY2hhciAqIGVuZDsKCiAgICAgIHByaW50ZigiTG93ZXN0LWJpdCBmaXJzdDogIik7CgogICAgICBmb3IgKAogICAgICAgICAgKHNoaWZ0ID0gMSksIChwb3MgPSBzdHJlYW0pLCAoZW5kID0gc3RyZWFtICsgc2l6ZW9mIHN0cmVhbSk7CiAgICAgICAgICBwb3MgPCBlbmQ7CiAgICAgICAgICAoc2hpZnQgPDw9IDEpID8gMCA6IChwb3MgKz0gKytzaGlmdCkKICAgICAgICApIHsKICAgICAgICAgIHByaW50Zigoc2hpZnQgJiAqcG9zKSA/ICIxIiA6ICIwIik7CiAgICAgICAgfQoKICAgICAgcHJpbnRmKCJcbiIpOwoKICAgICAgcHJpbnRmKCJMb3dlc3QtYml0IGZpcnN0OiAiKTsKCiAgICAgIHNoaWZ0ID0gMTsKICAgICAgcG9zID0gc3RyZWFtOwogICAgICBlbmQgPSBzdHJlYW0gKyBzaXplb2Ygc3RyZWFtOwogICAgICB3aGlsZSAocG9zIDwgZW5kKSB7CiAgICAgICAgICBwcmludGYoKHNoaWZ0ICYgKnBvcykgPyAiMSIgOiAiMCIpOwogICAgICAgICAgaWYgKCEoc2hpZnQgPDw9IDEpKQogICAgICAgICAgICBwb3MgKz0gKytzaGlmdDsKICAgICAgICB9CgogICAgICBwcmludGYoIlxuIik7CgogICAgICByZXR1cm4gMDsKICAgIH0=