#include <stdio.h>
#include <inttypes.h>
#include <string.h>
void uintprint4(uint32_t *a)
{
printf("%u %u %u %u\n", a
[0], a
[1], a
[2], a
[3]); }
typedef union {
uint8_t integral;
struct {unsigned char a3: 2, a2: 2, a1: 2, a0: 2;} at;
} indices;
void sort4(uint32_t a[static 4])
{
uint8_t bits = ((a[0] <= a[1]) ) | ((a[1] <= a[2]) << 1) | ((a[2] <= a[3]) << 2)
| ((a[0] <= a[2]) << 3) | ((a[1] <= a[3]) << 4) | ((a[0] <= a[3]) << 5);
static const char b2[] = "LKH><;@ABCFBORMAND(-4-$-)&&&&&&&///////\x12\x12\x13\x12\x12\x0f\x0f\x0f\x0f\x0f-1-1-!!!!\x1a\n\x19\r\x19\t";
indices index = {b2[bits]*3};
uint32_t out[4] = {a[index.at.a0], a[index.at.a1], a[index.at.a2], a[index.at.a3]};
memcpy(a
, out
, 4*sizeof(uint32_t)); }
int main(void)
{
uint32_t a[] = {0, 1, 2, 3};
uint32_t b[] = {0, 1, 3, 2};
uint32_t c[] = {0, 2, 1, 3};
uint32_t d[] = {0, 2, 3, 1};
uint32_t e[] = {0, 3, 1, 2};
uint32_t f[] = {0, 3, 2, 1};
uint32_t g[] = {1, 0, 2, 3};
uint32_t h[] = {1, 0, 3, 2};
uint32_t i[] = {1, 2, 0, 3};
uint32_t j[] = {1, 2, 3, 0};
uint32_t k[] = {1, 3, 0, 2};
uint32_t l[] = {1, 3, 2, 0};
uint32_t m[] = {2, 0, 1, 3};
uint32_t n[] = {2, 0, 3, 1};
uint32_t o[] = {2, 1, 0, 3};
uint32_t p[] = {2, 1, 3, 0};
uint32_t q[] = {2, 3, 0, 1};
uint32_t r[] = {2, 3, 1, 0};
uint32_t s[] = {3, 0, 1, 2};
uint32_t t[] = {3, 0, 2, 1};
uint32_t u[] = {3, 1, 0, 2};
uint32_t v[] = {3, 1, 2, 0};
uint32_t w[] = {3, 2, 0, 1};
uint32_t x[] = {3, 2, 1, 0};
sort4(a); sort4(b); sort4(c); sort4(d); sort4(e); sort4(f);
sort4(g); sort4(h); sort4(i); sort4(j); sort4(k); sort4(l);
sort4(m); sort4(n); sort4(o); sort4(p); sort4(q); sort4(r);
sort4(s); sort4(t); sort4(u); sort4(v); sort4(w); sort4(x);
uintprint4(a); uintprint4(b); uintprint4(c); uintprint4(d); uintprint4(e); uintprint4(f);
uintprint4(g); uintprint4(h); uintprint4(i); uintprint4(j); uintprint4(k); uintprint4(l);
uintprint4(m); uintprint4(n); uintprint4(o); uintprint4(p); uintprint4(q); uintprint4(r);
uintprint4(s); uintprint4(t); uintprint4(u); uintprint4(v); uintprint4(w); uintprint4(x);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxpbnR0eXBlcy5oPgojaW5jbHVkZSA8c3RyaW5nLmg+Cgp2b2lkIHVpbnRwcmludDQodWludDMyX3QgKmEpCnsKICBwcmludGYoIiV1ICV1ICV1ICV1XG4iLCBhWzBdLCBhWzFdLCBhWzJdLCBhWzNdKTsKfQoKdHlwZWRlZiB1bmlvbiB7CiAgdWludDhfdCBpbnRlZ3JhbDsKICBzdHJ1Y3Qge3Vuc2lnbmVkIGNoYXIgYTM6IDIsIGEyOiAyLCBhMTogMiwgYTA6IDI7fSBhdDsKfSBpbmRpY2VzOwoKdm9pZCBzb3J0NCh1aW50MzJfdCBhW3N0YXRpYyA0XSkKewogIHVpbnQ4X3QgYml0cyA9ICgoYVswXSA8PSBhWzFdKSAgICAgKSB8ICgoYVsxXSA8PSBhWzJdKSA8PCAxKSB8ICgoYVsyXSA8PSBhWzNdKSA8PCAyKQogICAgICAgICAgICAgICB8ICgoYVswXSA8PSBhWzJdKSA8PCAzKSB8ICgoYVsxXSA8PSBhWzNdKSA8PCA0KSB8ICgoYVswXSA8PSBhWzNdKSA8PCA1KTsKICBzdGF0aWMgY29uc3QgY2hhciBiMltdID0gIkxLSD48O0BBQkNGQk9STUFORCgtNC0kLSkmJiYmJiYmLy8vLy8vL1x4MTJceDEyXHgxM1x4MTJceDEyXHgwZlx4MGZceDBmXHgwZlx4MGYtMS0xLSEhISFceDFhXG5ceDE5XHJceDE5XHQiOwogIGluZGljZXMgaW5kZXggPSB7YjJbYml0c10qM307CiAgdWludDMyX3Qgb3V0WzRdID0ge2FbaW5kZXguYXQuYTBdLCBhW2luZGV4LmF0LmExXSwgYVtpbmRleC5hdC5hMl0sIGFbaW5kZXguYXQuYTNdfTsKICBtZW1jcHkoYSwgb3V0LCA0KnNpemVvZih1aW50MzJfdCkpOwp9CgppbnQgbWFpbih2b2lkKQp7CiAgdWludDMyX3QgYVtdID0gezAsIDEsIDIsIDN9OwogIHVpbnQzMl90IGJbXSA9IHswLCAxLCAzLCAyfTsKICB1aW50MzJfdCBjW10gPSB7MCwgMiwgMSwgM307CiAgdWludDMyX3QgZFtdID0gezAsIDIsIDMsIDF9OwogIHVpbnQzMl90IGVbXSA9IHswLCAzLCAxLCAyfTsKICB1aW50MzJfdCBmW10gPSB7MCwgMywgMiwgMX07CiAgdWludDMyX3QgZ1tdID0gezEsIDAsIDIsIDN9OwogIHVpbnQzMl90IGhbXSA9IHsxLCAwLCAzLCAyfTsKICB1aW50MzJfdCBpW10gPSB7MSwgMiwgMCwgM307CiAgdWludDMyX3QgaltdID0gezEsIDIsIDMsIDB9OwogIHVpbnQzMl90IGtbXSA9IHsxLCAzLCAwLCAyfTsKICB1aW50MzJfdCBsW10gPSB7MSwgMywgMiwgMH07CiAgdWludDMyX3QgbVtdID0gezIsIDAsIDEsIDN9OwogIHVpbnQzMl90IG5bXSA9IHsyLCAwLCAzLCAxfTsKICB1aW50MzJfdCBvW10gPSB7MiwgMSwgMCwgM307CiAgdWludDMyX3QgcFtdID0gezIsIDEsIDMsIDB9OwogIHVpbnQzMl90IHFbXSA9IHsyLCAzLCAwLCAxfTsKICB1aW50MzJfdCByW10gPSB7MiwgMywgMSwgMH07CiAgdWludDMyX3Qgc1tdID0gezMsIDAsIDEsIDJ9OwogIHVpbnQzMl90IHRbXSA9IHszLCAwLCAyLCAxfTsKICB1aW50MzJfdCB1W10gPSB7MywgMSwgMCwgMn07CiAgdWludDMyX3QgdltdID0gezMsIDEsIDIsIDB9OwogIHVpbnQzMl90IHdbXSA9IHszLCAyLCAwLCAxfTsKICB1aW50MzJfdCB4W10gPSB7MywgMiwgMSwgMH07CgogIHNvcnQ0KGEpOyBzb3J0NChiKTsgc29ydDQoYyk7IHNvcnQ0KGQpOyBzb3J0NChlKTsgc29ydDQoZik7CiAgc29ydDQoZyk7IHNvcnQ0KGgpOyBzb3J0NChpKTsgc29ydDQoaik7IHNvcnQ0KGspOyBzb3J0NChsKTsKICBzb3J0NChtKTsgc29ydDQobik7IHNvcnQ0KG8pOyBzb3J0NChwKTsgc29ydDQocSk7IHNvcnQ0KHIpOwogIHNvcnQ0KHMpOyBzb3J0NCh0KTsgc29ydDQodSk7IHNvcnQ0KHYpOyBzb3J0NCh3KTsgc29ydDQoeCk7IAoKICB1aW50cHJpbnQ0KGEpOyB1aW50cHJpbnQ0KGIpOyB1aW50cHJpbnQ0KGMpOyB1aW50cHJpbnQ0KGQpOyB1aW50cHJpbnQ0KGUpOyB1aW50cHJpbnQ0KGYpOwogIHVpbnRwcmludDQoZyk7IHVpbnRwcmludDQoaCk7IHVpbnRwcmludDQoaSk7IHVpbnRwcmludDQoaik7IHVpbnRwcmludDQoayk7IHVpbnRwcmludDQobCk7CiAgdWludHByaW50NChtKTsgdWludHByaW50NChuKTsgdWludHByaW50NChvKTsgdWludHByaW50NChwKTsgdWludHByaW50NChxKTsgdWludHByaW50NChyKTsKICB1aW50cHJpbnQ0KHMpOyB1aW50cHJpbnQ0KHQpOyB1aW50cHJpbnQ0KHUpOyB1aW50cHJpbnQ0KHYpOyB1aW50cHJpbnQ0KHcpOyB1aW50cHJpbnQ0KHgpOyAKICByZXR1cm4gMDsKfQo=