9638. Легкая задача для Дино

 

Даны два разных целых числа a и b. Найдите такое целое число k, чтобы |a – k| = |b – k|.

Примечание: |x| обозначает абсолютное значение (модуль) числа x.

 

Вход. Два целых числа a и b (-109a, b ≤ 109, ab).

 

Выход. Если не существует искомого числа k, то выведите -. В противном случае выведите число k.

 

Пример входа 1

Пример выхода 1

10 5

-

 

 

Пример входа 2

Пример выхода 2

6 2

4

 

 

РЕШЕНИЕ

математика

 

Анализ алгоритма

Уравнение |a – k| = |b – k| эквивалентно одному из следующих:

·        a – k = b – k или a = b, что невозможно так как a b;

·        a – k = k – b или 2k = a + b, k = (a + b) / 2;

Решение существует если a + b делится на 2.

 

Пример

Во втором тесте имеем уравнение: |6 – k| = |2 – k|, откуда

6 – k = k – 2, 2k = 8, k = 4

 

Реализация алгоритма

Читаем входные данные.

 

scanf("%lld %lld", &a, &b);

 

Если a + b не делится на 2, то решения не существует. Иначе ответ (a + b) / 2.

 

c = a + b;

if (c % 2 != 0) printf("-\n");

else printf("%lld\n", c / 2);