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

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

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

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

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

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

Примеры
Ввод

Вывод

Пояснение

4
5

1 2

Нужно взять одну коробку с двумя круассанами и одним эклером и две коробки с одним круассаном и двумя эклерами. Всего получится 4 круассана и 5 эклеров.

5
3

−1

Разложить пирожные по коробкам нельзя.


aerostepan: a = int(input())
b = int(input())

if (a + b) % 3 != 0:
print(-1)
else:
if (a // b == 2) or (b // a == 2):
if a % 2 < b % 2:
print((a + b) // 3, 0)
elif a % 2 > b % 2:
print(0, (a + b) // 3)
else:
print(-1)
else:
if (b - a == b % a) or (a - b == a % b):
print(a // 3, (b - (a // 3)) // 2)
else:

print(-1)

Ответы

Ответ дал: stevevets1000000
1

Ответ:

a = int(input())

b = int(input())

if (a + b) % 3 != 0:

  print(-1)

elif (a + b)/3 > a or (a + b)/3 > b:

  print(-1)

elif (a + b)/3 == a:

  print(0)

  print((a + b)/3)

elif (a + b)/3 == b:

  print((a + b)/3)

  print(0)

else:

  if a > b:

      print(int(((a + b)/3)- (((a + b)/3)-(a - b))))

      print(int(((a + b)/3)-(a - b)))

  if b > a:

      print(int(((a + b)/3)- (((a + b)/3)-(b - a))))

      print(int(((a + b)/3)-(b - a)))

Объяснение:

28 баллов)


Cyberhikki: какой язык програмирования?
Ответ дал: aerostepan
1

Ответ:

a = int(input())

b = int(input())

if (a + b) % 3 != 0:

 print(-1)

else:

 if (a // b == 2) or (b // a == 2):

     if a % 2 < b % 2:

         print((a + b) // 3, 0)

     elif a % 2 > b % 2:

         print(0, (a + b) // 3)

     else:

         print(-1)

 else:

     if (b - a ==  b % a) or (a - b == a % b):

         print(a // 3, (b - (a // 3)) // 2)

     else:

         print(-1)

36 баллов. язык python.

Объяснение:

Вас заинтересует