10364. Вы знаете
свою азбуку?
Коровы фермера Джона проводят
ежедневные онлайн-собрания на платформе видеовстреч “mooZ”. Ради развлечения они придумали простую числовую игру, в которую можно
играть во время встречи ради развлечения.
У Элси есть три натуральных числа a, b и c (a ≤ b ≤ c). Предполагается, что эти целые
числа являются секретными, поэтому она не раскрывает их напрямую своей сестре
Бесси. Вместо этого она дает Бесси семь (не обязательно различных) целых чисел
в диапазоне от 1 до 109, утверждая, что это a, b,
c, a + b, b + c, c + a и a
+ b + c в некотором порядке.
Зная список из этих семи чисел,
помогите Бесси определить a, b и c. Известно, что ответ
уникален.
Вход. Семь целых чисел.
Выход. Выведите a, b и c.
Пример
входа |
Пример
выхода |
2 2 11 4 9 7 9 |
2 2 7 |
жадные
алгоритмы
Отсортируем
входные 7 чисел. Наименьшими двумя из них будут a и b. Наибольшим
среди входных чисел будет значение a + b + c. Вычтем из него a и b, получим c.
Пример
Отсортируем
входные числа.
Имеем: a = 2, b = 2. Поскольку a + b + c = 11, то c = 11 – a – b = 11 – 2 – 2 = 7.
Реализация алгоритма
Читаем входные 7 чисел в массив.
for (i = 0; i < 7; i++)
scanf("%d", &nums[i]);
Отсортируем массив.
sort(nums, nums + 7);
Наименьшими двумя числами будут a и b.
a = nums[0], b =
nums[1];
Число a + b + c будет наибольшим в массиве. Вычисляем c.
c = nums[6] - a - b;
Выводим ответ.
printf("%d %d %d\n", a, b, c);