#include <stdio.h>
void REORDER3(unsigned &b1, unsigned &b2, unsigned &b3, unsigned a1, unsigned a2, unsigned a3)
{
b1 = a1;
b2 = a2;
b3 = a3;
}
void uintprint3(unsigned *a)
{
printf("%u %u %u\n", a[0], a[1], a[2]);
}
void sort3( unsigned int a[3] )
{
if (a[0] > a[1])
{
if (a[1] > a[2])
{
REORDER3 (
a[0], a[1], a[2],
a[2], a[1], a[0]);
return;
}
else
{
if (a[0] > a[2])
{
REORDER3 (
a[0], a[1], a[2],
a[1], a[2], a[0]);
return;
}
else
{
REORDER3 (
a[0], a[1], a[2],
a[1], a[0], a[2]);
return;
}
}
}
else
{
if (a[1] <= a[2])
{
return; //NO REORDER
}
else
{
if (a[0] <= a[2])
{
REORDER3 (
a[0], a[1], a[2],
a[0], a[2], a[1] );
return;
}
else
{
REORDER3 (
a[0], a[1], a[2],
a[2], a[0], a[1] );
return;
}
}
}
}
int main(void)
{
unsigned int a[] = {0, 1, 2};
unsigned int b[] = {0, 2, 1};
unsigned int c[] = {1, 2, 0};
unsigned int d[] = {1, 0, 2};
unsigned int e[] = {2, 0, 1};
unsigned int f[] = {2, 1, 0};
sort3(a); sort3(b); sort3(c); sort3(d); sort3(e); sort3(f);
uintprint3(a);
uintprint3(b);
uintprint3(c);
uintprint3(d);
uintprint3(e);
uintprint3(f);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIFJFT1JERVIzKHVuc2lnbmVkICZiMSwgdW5zaWduZWQgJmIyLCB1bnNpZ25lZCAmYjMsIHVuc2lnbmVkIGExLCB1bnNpZ25lZCBhMiwgdW5zaWduZWQgYTMpCnsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgYjEgPSBhMTsKICBiMiA9IGEyOwogIGIzID0gYTM7Cn0KCnZvaWQgdWludHByaW50Myh1bnNpZ25lZCAqYSkKewogICAgcHJpbnRmKCIldSAldSAldVxuIiwgYVswXSwgYVsxXSwgYVsyXSk7Cn0KCgp2b2lkIHNvcnQzKCB1bnNpZ25lZCBpbnQgYVszXSApCnsKICAgIGlmIChhWzBdID4gYVsxXSkKICAgIHsKICAgICAgICBpZiAoYVsxXSA+IGFbMl0pCiAgICAgICAgewogICAgICAgICAgICBSRU9SREVSMyAoCiAgICAgICAgICAgICAgICBhWzBdLCBhWzFdLCBhWzJdLAogICAgICAgICAgICAgICAgYVsyXSwgYVsxXSwgYVswXSk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgaWYgKGFbMF0gPiBhWzJdKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSRU9SREVSMyAoCiAgICAgICAgICAgICAgICAgICAgYVswXSwgYVsxXSwgYVsyXSwKICAgICAgICAgICAgICAgICAgICBhWzFdLCBhWzJdLCBhWzBdKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJFT1JERVIzICgKICAgICAgICAgICAgICAgICAgICBhWzBdLCBhWzFdLCBhWzJdLAogICAgICAgICAgICAgICAgICAgIGFbMV0sIGFbMF0sIGFbMl0pOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgZWxzZQogICAgewogICAgICAgIGlmIChhWzFdIDw9IGFbMl0pCiAgICAgICAgewogICAgICAgICAgICByZXR1cm47IC8vTk8gUkVPUkRFUgogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBpZiAoYVswXSA8PSBhWzJdKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSRU9SREVSMyAoCiAgICAgICAgICAgICAgICAgICAgYVswXSwgYVsxXSwgYVsyXSwKICAgICAgICAgICAgICAgICAgICBhWzBdLCBhWzJdLCBhWzFdICk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSRU9SREVSMyAoCiAgICAgICAgICAgICAgICAgICAgYVswXSwgYVsxXSwgYVsyXSwKICAgICAgICAgICAgICAgICAgICBhWzJdLCBhWzBdLCBhWzFdICk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCmludCBtYWluKHZvaWQpCnsKICAgIHVuc2lnbmVkIGludCBhW10gPSB7MCwgMSwgMn07CiAgICB1bnNpZ25lZCBpbnQgYltdID0gezAsIDIsIDF9OwogICAgdW5zaWduZWQgaW50IGNbXSA9IHsxLCAyLCAwfTsKICAgIHVuc2lnbmVkIGludCBkW10gPSB7MSwgMCwgMn07CiAgICB1bnNpZ25lZCBpbnQgZVtdID0gezIsIDAsIDF9OwogICAgdW5zaWduZWQgaW50IGZbXSA9IHsyLCAxLCAwfTsKICAgIHNvcnQzKGEpOyBzb3J0MyhiKTsgc29ydDMoYyk7IHNvcnQzKGQpOyBzb3J0MyhlKTsgc29ydDMoZik7CiAgICAKICAgIHVpbnRwcmludDMoYSk7CiAgICB1aW50cHJpbnQzKGIpOwogICAgdWludHByaW50MyhjKTsKICAgIHVpbnRwcmludDMoZCk7CiAgICB1aW50cHJpbnQzKGUpOwogICAgdWludHByaW50MyhmKTsKICAgIHJldHVybiAwOwp9