#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) 
    printf("%d ", arr[i]);

insertionSortBySumOfDigits(arr, size);
printf("\n");

for (int i = 0; i < size; ++i) 
    printf("%d ", arr[i]);

return 0;
}
