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 |
жадные
алгоритмы
Отсортируем
все семь входных чисел. Наименьшие два из них будут равны значениям 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. Вычтя из него a и b, получим c.
c = nums[6] - a - b;
Выводим ответ.
printf("%d %d %d\n", a, b, c);