#include #include void set_calories(int* current, int* highest) { if (*current > highest[2]) { highest[0] = highest[1]; highest[1] = highest[2]; highest[2] = *current; } else if (*current > highest[1]) { highest[0] = highest[1]; highest[1] = *current; } else if (*current > highest[0]) { highest[0] = *current; } *current = 0; } int main() { char *buffer; size_t bufsize; size_t characters; int current_calories = 0; int highest_calories[3] = {0, 0, 0}; while ((characters = getline(&buffer, &bufsize, stdin)) != -1) { --characters; buffer[characters] = 0; if (characters == 0) { set_calories(¤t_calories, highest_calories); } current_calories += atoi(buffer); } set_calories(¤t_calories, highest_calories); printf("The 3 elves with the highest calories have %d calories", highest_calories[0] + highest_calories[1] + highest_calories[2]); }