Нужно найти алгоритм, если можно, то на Python

Директор IT-школы Борис Иванович поручил Васе и Маше собрать пакеты с подарками. На столе стоят три коробки. В одной коробке X ирисок, в другой Y леденцов, в третьей Z помадок. Борис Иванович сказал, что в каждом пакете с подарками должно быть поровну конфет двух видов и что надо использовать все конфеты. Вася с Машей должны собрать такие подарки или объяснить, что это невозможно.

Программа должна прочитать три положительных целых числа. В первой строке число A — количество ирисок, во второй строке число B — количество леденцов, в третьей строке число C — количество помадок. Известно, что A⩾B⩾C. Если собрать наборы не удастся, она должна вывести «Не получается» (без кавычек). Если удастся, то несколько троек чисел, описывающих наборы. В каждой тройке чисел должен быть один ноль и два целых положительных числа. Первое число обозначает количество ирисок, второе число — количество леденцов, третье — количество помадок.

Суммарное число каждого типа конфет должно совпадать с заданным. Если есть несколько способов собрать такие наборы, выведи любой.

Пример 1:

Для 14-ти ирисок, 8-ми леденцов и 18-ти помадок можно сделать такие наборы:

14 8 18
8 0 8 (это первый набор, 8 ирисок и 8 помадок)
2 2 0 (это второй набор, 2 ириски и 2 леденца)
0 6 6 (это третий набор, 6 леденцов и 6 помадок)
4 0 4 (это четвёртый набор, 4 ириски и 4 помадки)

Пример 2:

Для одной ириски, одного леденца и одной помадки сделать такие наборы нельзя.


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

Автор решения: Harry

Пусть есть l наборов по одной конфете A и B (понятно, что могут быть любые варианты наборов, лишь бы общее количество было l), k наборов по одной A и C, и m наборов по одной B и C.

Очевидны соотношения:

l + m = B
l + k = A
k + m = С

И решение этой системы:

l -> 1/2 (A + B - C)
k -> 1/2 (A - B + C)
m -> 1/2 (-A + B + C)

Вот и все. Если все эти числа целые положительные - решение есть, и можно привести решение — см. начало ответа, они описаны.

Если хоть одно значение не целое или отрицательное — значит, такого набора нет и быть не может...

"По-моему, так". (с) Пух

→ Ссылка