Вопрос задан 05.06.2023 в 00:02. Предмет Информатика. Спрашивает Тилинька Орест.

Задача 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
Перейти к ответам

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

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

Ответ:

язык: c++

#include<iostream>

using namespace std;

int main() {

int a, b;

cin >> a >> b;

if ((a + b) % 3)

{

 cout << -1;

 return 0;

}

int x = (2 * ((a + b) / 3) - a);

int y = (a + b) / 3 - x;

if (x >= 0 && y >= 0)

{

 cout << y << " " << x;

}

else

{

 cout << -1;

}

}

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

Данная задача решается путем перебора всех возможных комбинаций коробок и проверки их соответствия условию задачи.

Для начала, определим количество коробок, в которых лежат два круассана и один эклер. Пусть это количество равно x. Тогда количество коробок, в которых лежит один круассан и два эклера, будет равно (A - 2x) / 2.

Мы должны проверить, что оба числа (x и (A - 2x) / 2) являются целыми неотрицательными числами. Если это условие выполняется, мы можем упаковать все пирожные в коробки соответствующим образом. В противном случае, разложить пирожные по коробкам невозможно.

Вот решение на языке Python:

python
def pack_pastries(A, B): for x in range(A // 2 + 1): if (A - 2 * x) % 2 == 0: y = (A - 2 * x) // 2 if x + 3 * y == B: return x, y return -1 A = int(input()) B = int(input()) result = pack_pastries(A, B) print(result[0], result[1])

Примеры использования:

makefile
Ввод: 4 5 Вывод: 1 2 Ввод: 5 3 Вывод: -1

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

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

0 0

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

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

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