#include <stdio.h>

int h;

#define getOutlier(a, b) ((*a&1&*(a+1)&1|*(a+1)&1&*(a+2)&1)|*a&1&*(a+2)&1)?0*(h=0)+qsort(a,b,sizeof(int),*c)*0+*a:0*(h=1)+qsort(a,b,sizeof(int),*c)*0+*a

int c(void *a, void *b) {
    return *(int*)a&1?h?-1:1:*(int*)b&1?h?1:-1:0;
}

int main() {
    int array1[] = {1, 3, 3, 7, 9, 13, 33, 21, 6}; // should return 6
    int array2[] = {2, 2, 4, 2, 11, 10, 6}; // should return 11
    int length1 = sizeof(array1)/sizeof(*array1);
    int length2 = sizeof(array2)/sizeof(*array2);
    printf("%d\n%d\n", getOutlier(array1, length1), getOutlier(array2, length2));
}