Олимпиада по информатики задача "Наборы пирожных"

Задача 2: Наборы пирожных

На складе кондитерской фабрики хранятся пирожные двух видов — круассаны и эклеры. Круассанов A штук, а эклеров — B штук. Есть неограниченный запас подарочных коробок, в каждую коробку можно положить только три пирожных. При этом требуется, чтобы в коробке были пирожные обоих видов, то есть в одну коробку можно положить два круассана и один эклер или один круассан и два эклера.

Определите, можно ли упаковать все имеющиеся пирожные в коробки и выведите подходящий способ размещения пирожных по коробкам.

Входные данные

Программа получает на вход два целых числа A и B, записанных в отдельных строках. 1 ≤ A ≤ 109, 1 ≤ B ≤ 109.

Выходные данные

Если можно разложить все пирожные по коробкам в соответствии с условием задачи, программа должна вывести два целых числа. Первое число равно количеству коробок, в которых лежит два круассана и один эклер. Второе число равно количеству коробок, в которых лежит один круассан и два эклера.

Если разложить все пирожные по коробкам нужным способом нельзя, программа должна вывести одно число −1.

Система оценивания

Решение, правильно работающее только для случаев, когда числа A и B не превосходят 100, будет оцениваться в 60 баллов.

Ввод 4 5

Вывод 1 2

Ввод 5 3

Вывод

-1


Ответы (1 шт):

Автор решения: Harry
if ((A+B)%3) return Не получится...

N = (2B-A)/3;
M = (2A-B)/3;

с проверками N >= 0, M >= 0.

Вроде бы так...

Ну, а код уж напишите сами - такой простой... :)

→ Ссылка