#include <iostream>
using namespace std;
int main()
{
int a[] = { 5,10,7,6,3,9,4,8,12 };
int i = 0, j = 8;
int k = (i+j)/2;
int mid = a[k];
bool a1=false,a2=false;
do
{
while (i<k)
{
if (a[i] > mid) { a1 = true; break; }
i++;
}
while (j>k)
{
if (a[j] < mid) { a2 = true; break; }
j--;
}
if (a1 && a2)
{
int temp = a[i];
a[i]=a[j];
a[j] = temp;
a1=false;
a2=false;
i++;
j--;
}
else if (!a1 && a2)
{
a[k] = a[j];
a[j]=mid;
mid = a[k];
a2=false;
i = 0;
j = 8;
}
else if (a1 && !a2)
{
a[k] = a[i];
a[i]=mid;
mid = a[k];
a1=false;
i = 0;
j = 8;
}
else break;
}while (1);
for (int i = 0; i<9; i++) cout << a[i] << " "; cout << endl;
return 0;
}
CgojaW5jbHVkZSA8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpCnsKCWludCBhW10gPSB7IDUsMTAsNyw2LDMsOSw0LDgsMTIgfTsJCglpbnQgaSA9IDAsIGogPSA4OwoJaW50IGsgPSAgKGkraikvMjsKCWludCBtaWQgPSBhW2tdOwoJYm9vbCBhMT1mYWxzZSxhMj1mYWxzZTsKCWRvCgl7Cgl3aGlsZSAoaTxrKSAKCXsKCQlpZiAoYVtpXSA+IG1pZCkgeyBhMSA9IHRydWU7IGJyZWFrOyB9CgkJaSsrOwoJfQoJd2hpbGUgKGo+aykgCgl7CgkJaWYgKGFbal0gPCBtaWQpIHsgYTIgPSB0cnVlOyBicmVhazsgfQoJCWotLTsKCX0KCWlmIChhMSAmJiBhMikgCgl7CgkJaW50IHRlbXAgPSBhW2ldOwoJCWFbaV09YVtqXTsKCQlhW2pdID0gdGVtcDsKCQlhMT1mYWxzZTsgCgkJYTI9ZmFsc2U7CgkJaSsrOwoJCWotLTsKCX0KCWVsc2UgaWYgKCFhMSAmJiBhMikgCgl7CgkJYVtrXSA9IGFbal07CgkJYVtqXT1taWQ7CgkJbWlkID0gYVtrXTsKCQlhMj1mYWxzZTsKCQlpID0gMDsKCQlqID0gODsKCX0KCWVsc2UgaWYgKGExICYmICFhMikgCgl7CgkJYVtrXSA9IGFbaV07CgkJYVtpXT1taWQ7CgkJbWlkID0gYVtrXTsKCQlhMT1mYWxzZTsgCgkJaSA9IDA7CgkJaiA9IDg7Cgl9CgllbHNlIGJyZWFrOwoJfXdoaWxlICgxKTsKCglmb3IgKGludCBpID0gMDsgaTw5OyBpKyspIGNvdXQgPDwgYVtpXSA8PCAiICI7IGNvdXQgPDwgZW5kbDsKCQoJcmV0dXJuIDA7Cn0=