#include <stdio.h>
#include <limits.h>
#include <stdlib.h>
#include <math.h>
int compare(const void* a, const void* b) {
return (*(int*)a - *(int*)b);
}
int getMinimumTripletProduct(int arr[], int size) {
qsort(arr, size, sizeof(int), compare);
if (size <= 2) {
return INT_MAX;
}
return min(arr[size - 1] * arr[size - 2] * arr[0], arr[0] * arr[1] * arr[2]);
}
int main()
{
int arr[] = {3, 5, 8, 17, 4, 9, 7, 39, 2};
int size = sizeof(arr) / sizeof(arr[0]);
int min = getMinimumTripletProduct(arr, size);
if (min == INT_MAX) {
puts("Vector has less than 3 elements");
}
else {
printf("The minimum product = %d", min);
}
}
/*
run:
The minimum product = 24
*/