Вопрос задан 03.07.2023 в 07:32. Предмет Информатика. Спрашивает Салтанович Ваня.

Задача 2: Наборы пирожных На складе кондитерской фабрики хранятся пирожные двух видов — круассаны

и эклеры. Круассанов A штук, а эклеров — B штук. Есть неограниченный запас подарочных коробок, в каждую коробку можно положить только три пирожных. При этом требуется, чтобы в коробке были пирожные обоих видов, то есть в одну коробку можно положить два круассана и один эклер или один круассан и два эклера. Определите, можно ли упаковать все имеющиеся пирожные в коробки и выведите подходящий способ размещения пирожных по коробкам. Входные данные Программа получает на вход два целых числа A и B, записанных в отдельных строках. 1 ≤ A ≤ 109, 1 ≤ B ≤ 109. Выходные данные Если можно разложить все пирожные по коробкам в соответствии с условием задачи, программа должна вывести два целых числа. Первое число равно количеству коробок, в которых лежит два круассана и один эклер. Второе число равно количеству коробок, в которых лежит один круассан и два эклера. Если разложить все пирожные по коробкам нужным способом нельзя, программа должна вывести одно число −1. Система оценивания Решение, правильно работающее только для случаев, когда числа A и B не превосходят 100, будет оцениваться в 60 баллов. Примеры Ввод Вывод Пояснение 4 5 1 2 Нужно взять одну коробку с двумя круассанами и одним эклером и две коробки с одним круассаном и двумя эклерами. Всего получится 4 круассана и 5 эклеров. -------------------------------------------------------------------------------------------------------------------------- 5 3 −1 Разложить пирожные по коробкам нельзя.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Шулюк Оксана.

Ответ:

var

  A, B, K, R : longint;

begin

readln(A, B);

if (A mod 2 = 1) and (B mod 2 = 1) then

  writeln('-1');

if (A mod 2 = 0) and (B mod 2 = 0) and

     ((A div 2 <> B) or (B div 2 <> A)) then

  writeln('-1');

if (A mod 2 = 0) and (B mod 2 = 0) and

     ((A div 2 = B) or (B div 2 = A)) then

  if A > B then

     writeln(B, '0')

  else

     writeln('0', A);

if (A mod 2 = 1) and (B mod 2 = A) then begin

  A := A-1;

  B := B-2;

  if (A div 2 = B) or (B div 2 = A) then

     if A > B then

        writeln(B, '0')

     else

        writeln('0', A);

end;

if (B mod 2 = 1) and (A mod 2 = B) then begin

  B := B-1;

  A := A-2;

  if (B div 2 = A) or (A div 2 = B) then

     if B > A then

        writeln(B, '0')

     else

        writeln('0', A)

end;

end.

На 12 баллов. Всё что могу.

0 0
Отвечает Гур'єв Влад.

Ответ:

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 баллов


0 1
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи мы должны определить, можно ли упаковать все имеющиеся пирожные в коробки, так чтобы в каждой коробке были пирожные обоих видов (2 круассана и 1 эклер или 1 круассан и 2 эклера).

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

Допустим, у нас есть A круассанов и B эклеров. Мы хотим сформировать как можно больше коробок. Каждая коробка содержит 3 пирожных. Поэтому максимальное количество коробок, которые мы можем сформировать, будет равно min(A / 2, B / 2), где min() берет минимум из двух значений.

Теперь давайте проверим, можем ли мы действительно сформировать такое количество коробок и сколько останется круассанов и эклеров после этого.

Если min(A / 2, B / 2) равно X (количество коробок), то количество оставшихся круассанов будет A - 2 * X, а количество оставшихся эклеров будет B - 2 * X.

Если остаток от деления A - 2 * X или B - 2 * X не равен нулю, то мы не можем сформировать все коробки, которые хотели бы, и ответ будет -1. В противном случае мы успешно сформировали X коробок, в каждой из которых по 2 круассана и 1 эклер, и остались некоторые остатки круассанов и эклеров.

Давайте запишем этот алгоритм на Python:

python
# Ввод данных A = int(input()) B = int(input()) # Вычисляем максимальное количество коробок X = min(A // 2, B // 2) # Вычисляем остатки круассанов и эклеров remaining_croissants = A - 2 * X remaining_eclairs = B - 2 * X # Проверяем, можем ли сформировать все коробки if remaining_croissants % 2 == 0 and remaining_eclairs % 2 == 0: print(X, remaining_croissants // 2 + remaining_eclairs // 2) else: print(-1)

Этот код сначала вычисляет максимальное количество коробок, которое можно сформировать, и затем проверяет, можем ли мы сформировать все коробки. Если да, он выводит количество коробок с 2 круассанами и 1 эклером, а также количество коробок с 1 круассаном и 2 эклерами. Если нельзя сформировать все коробки, выводится -1.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос