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. Известно, что ответ уникален.

 

Вход. Семь целых чисел.

 

Выход. Выведите ab и 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 – ab = 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);