#define LIST4(x, N) N<<(x), N<<((x)+1), N<<((x)+2), N<<((x)+3)
#define LIST8(x, N) LIST4(x, N), LIST4(x+4, N)
#define LIST16(x, N) LIST8(x, N), LIST8(x+8, N)
#define LIST32(x, N) LIST16(x, N), LIST16(x+16, N)
#define LIST64(N) LIST32(0, N), LIST32(32, N)
const unsigned values[] = { LIST32(0, 1u) }; // angenommen unsigned hat 32-Bit. Suffix nicht vergessen!
#undef LIST4
#undef LIST8
#undef LIST16
#undef LIST32
#undef LIST64
#define DEF(N) \
const unsigned int VALUE##N = values[N];
DEF(0)
DEF(1)
DEF(2)
#undef DEF
#include <iostream>
int main()
{
std::cout << VALUE0 << ' ' << VALUE1 << ' ' << VALUE2;
}
I2RlZmluZSBMSVNUNCh4LCBOKSBOPDwoeCksIE48PCgoeCkrMSksIE48PCgoeCkrMiksIE48PCgoeCkrMykKI2RlZmluZSBMSVNUOCh4LCBOKSBMSVNUNCh4LCBOKSwgTElTVDQoeCs0LCBOKQojZGVmaW5lIExJU1QxNih4LCBOKSBMSVNUOCh4LCBOKSwgTElTVDgoeCs4LCBOKQojZGVmaW5lIExJU1QzMih4LCBOKSBMSVNUMTYoeCwgTiksIExJU1QxNih4KzE2LCBOKQojZGVmaW5lIExJU1Q2NChOKSBMSVNUMzIoMCwgTiksIExJU1QzMigzMiwgTikKCmNvbnN0IHVuc2lnbmVkIHZhbHVlc1tdID0geyBMSVNUMzIoMCwgMXUpIH07IC8vIGFuZ2Vub21tZW4gdW5zaWduZWQgaGF0IDMyLUJpdC4gU3VmZml4IG5pY2h0IHZlcmdlc3NlbiEKCiN1bmRlZiBMSVNUNAojdW5kZWYgTElTVDgKI3VuZGVmIExJU1QxNgojdW5kZWYgTElTVDMyCiN1bmRlZiBMSVNUNjQKCiNkZWZpbmUgREVGKE4pIFwKICAgIGNvbnN0IHVuc2lnbmVkIGludCBWQUxVRSMjTiA9IHZhbHVlc1tOXTsKCkRFRigwKQpERUYoMSkKREVGKDIpCgojdW5kZWYgREVGCgojaW5jbHVkZSA8aW9zdHJlYW0+CgppbnQgbWFpbigpCnsKICAgIHN0ZDo6Y291dCA8PCBWQUxVRTAgPDwgJyAnIDw8IFZBTFVFMSA8PCAnICcgPDwgVkFMVUUyOwp9