#include <stdio.h>
void insertionSortBySumOfDigits(int arr[], int n) {
int t, key, j, i = 0;
while (i < n && (arr[i]&1)==0)
i++;
if (i==n)
return;
i++;
while (i < n) {
while (i < n && (arr[i]&1)==0)
i++;
if (i==n)
break;
key = arr[i];
t = i;
j = i - 1;
while (j >=0) {
while (j>=0 && (arr[j]&1)==0)
j--;
if (j < 0 || arr[j]<= key)
break;
arr[t] = arr[j];
t = j;
j--;
}
arr[t] = key;
i++;
}
}
int main() {
const int size = 10;
int arr[10] = {8,7,3,6,5,4,5,2,6,1};
for (int i = 0; i < size; ++i)
insertionSortBySumOfDigits(arr, size);
for (int i = 0; i < size; ++i)
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIGluc2VydGlvblNvcnRCeVN1bU9mRGlnaXRzKGludCBhcnJbXSwgaW50IG4pIHsgCiAgICBpbnQgdCwga2V5LCBqLCBpID0gMDsKICAgIHdoaWxlIChpIDwgbiAmJiAoYXJyW2ldJjEpPT0wKQogICAgICAgIGkrKzsKICAgIGlmIChpPT1uKQogICAgICAgIHJldHVybjsKICAgIGkrKzsKICAgIHdoaWxlIChpIDwgbikgewogICAgICAgIHdoaWxlIChpIDwgbiAmJiAoYXJyW2ldJjEpPT0wKQogICAgICAgICAgICBpKys7CiAgICAgICAgaWYgKGk9PW4pCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGtleSA9IGFycltpXTsKICAgICAgICB0ID0gaTsKICAgICAgICBqID0gaSAtIDE7CiAgICAgICAgd2hpbGUgKGogPj0wKSB7CiAgICAgICAgICAgIHdoaWxlIChqPj0wICYmIChhcnJbal0mMSk9PTApCiAgICAgICAgICAgICAgICBqLS07CiAgICAgICAgICAgIGlmIChqIDwgMCB8fCBhcnJbal08PSBrZXkpCiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgYXJyW3RdID0gYXJyW2pdOwogICAgICAgICAgICB0ID0gajsKICAgICAgICAgICAgai0tOwogICAgICAgIH0KICAgICAgICBhcnJbdF0gPSBrZXk7CiAgICAgICAgaSsrOwogICAgfQogfQoKaW50IG1haW4oKSB7CmNvbnN0IGludCBzaXplID0gMTA7CmludCBhcnJbMTBdID0gezgsNywzLDYsNSw0LDUsMiw2LDF9OwoKZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyArK2kpIAogICAgcHJpbnRmKCIlZCAiLCBhcnJbaV0pOwoKaW5zZXJ0aW9uU29ydEJ5U3VtT2ZEaWdpdHMoYXJyLCBzaXplKTsKcHJpbnRmKCJcbiIpOwoKZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyArK2kpIAogICAgcHJpbnRmKCIlZCAiLCBhcnJbaV0pOwoKcmV0dXJuIDA7Cn0K