fork download
  1. #include <stdio.h>
  2.  
  3. int h;
  4.  
  5. #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
  6.  
  7. int c(void *a, void *b) {
  8. return *(int*)a&1?h?-1:1:*(int*)b&1?h?1:-1:0;
  9. }
  10.  
  11. int main() {
  12. int array1[] = {1, 3, 3, 7, 9, 13, 33, 21, 6}; // should return 6
  13. int array2[] = {2, 2, 4, 2, 11, 10, 6}; // should return 11
  14. int length1 = sizeof(array1)/sizeof(*array1);
  15. int length2 = sizeof(array2)/sizeof(*array2);
  16. printf("%d\n%d\n", getOutlier(array1, length1), getOutlier(array2, length2));
  17. }
Success #stdin #stdout 0s 4560KB
stdin
Standard input is empty
stdout
6
11