/*------------------------------------------------------------------------------ * problem009.c: Bear's optimal vents **----------------------------------------------------------------------------*/ /* Copyright (c) 2009 Peter Bui. All Rights Reserved. * * Peter Bui * **------------------------------------------------------------------------------ * Includes **----------------------------------------------------------------------------*/ #include #include #include #include /*------------------------------------------------------------------------------ * Constants **----------------------------------------------------------------------------*/ #define MAX_VENTS 10 #define MAX_STRLEN 128 /*------------------------------------------------------------------------------ * Macros **----------------------------------------------------------------------------*/ #define chomp(s) (s)[strlen(s) - 1] = 0; /*------------------------------------------------------------------------------ * Functions **----------------------------------------------------------------------------*/ static int compare_ints(const void *a, const void *b) { int ia = *(int *)(a); int ib = *(int *)(b); return (ia - ib); } static int compute_minimum_distances(int v[], int median, size_t nvents) { int i, min_dist = 0; for (i = 0; i < nvents; i++) min_dist += fabs(v[median] - v[i]); return (min_dist); } /*------------------------------------------------------------------------------ * Main Execution **----------------------------------------------------------------------------*/ int main(int argc, char* argv[]) { char room[MAX_STRLEN]; int v[MAX_VENTS], min_dist; size_t i, median, nvents; while (scanf("%s", &room) != EOF) { scanf("%u", &nvents); memset(v, 0, sizeof(int) * nvents); for (i = 0; i < nvents; i++) scanf("%d", &v[i]); qsort(v, nvents, sizeof(int), compare_ints); median = (nvents - 1) / 2; min_dist = compute_minimum_distances(v, median, nvents); printf("%s %d %d\n", room, v[median], min_dist); } return (EXIT_SUCCESS); } /*------------------------------------------------------------------------------ * vim: sts=4 sw=4 ts=8 ft=c **----------------------------------------------------------------------------*/