#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));
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgaDsKCiNkZWZpbmUgZ2V0T3V0bGllcihhLCBiKSAoKCphJjEmKihhKzEpJjF8KihhKzEpJjEmKihhKzIpJjEpfCphJjEmKihhKzIpJjEpPzAqKGg9MCkrcXNvcnQoYSxiLHNpemVvZihpbnQpLCpjKSowKyphOjAqKGg9MSkrcXNvcnQoYSxiLHNpemVvZihpbnQpLCpjKSowKyphCgppbnQgYyh2b2lkICphLCB2b2lkICpiKSB7CiAgICByZXR1cm4gKihpbnQqKWEmMT9oPy0xOjE6KihpbnQqKWImMT9oPzE6LTE6MDsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgYXJyYXkxW10gPSB7MSwgMywgMywgNywgOSwgMTMsIDMzLCAyMSwgNn07IC8vIHNob3VsZCByZXR1cm4gNgogICAgaW50IGFycmF5MltdID0gezIsIDIsIDQsIDIsIDExLCAxMCwgNn07IC8vIHNob3VsZCByZXR1cm4gMTEKICAgIGludCBsZW5ndGgxID0gc2l6ZW9mKGFycmF5MSkvc2l6ZW9mKCphcnJheTEpOwogICAgaW50IGxlbmd0aDIgPSBzaXplb2YoYXJyYXkyKS9zaXplb2YoKmFycmF5Mik7CiAgICBwcmludGYoIiVkXG4lZFxuIiwgZ2V0T3V0bGllcihhcnJheTEsIGxlbmd0aDEpLCBnZXRPdXRsaWVyKGFycmF5MiwgbGVuZ3RoMikpOwp9