Zig Zag Sequence

  • + 0 comments

    Can't be done for C, Might as well share my solution:

    int compare(const void *a, const void b) { return ((const int *)a - *(const int *)b); }

    int main() { int cases; scanf("%d", &cases); for (int k = 0; k< cases; k++) { int n; scanf("%d", &n); int *arr = malloc(n * sizeof(int)); int *final = malloc(n * sizeof(int));
    for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); }

        /* Enter your code here. Read input from STDIN. Print output to STDOUT */  
        qsort(arr, n, sizeof(int), compare);
        for (int i = 0; i < n/2; i++) {
            final[i] = arr[i];
            final[n - i- 1] = arr[n/2+i];
        }
        final[n/2] = arr[n-1];
        for (int i = 0; i < n; i++) {
            printf("%d ", final[i]);
        }
        printf("\n");
    }
    return 0;
    

    }