Наборы пирожных
На складе кондитерской фабрики хранятся пирожные двух видов — круассаны и эклеры. Круассанов A штук, а эклеров — B штук. Есть неограниченный запас подарочных коробок, в каждую коробку можно положить только три пирожных. При этом требуется, чтобы в коробке были пирожные обоих видов, то есть в одну коробку можно положить два круассана и один эклер или один круассан и два эклера.
Определите, можно ли упаковать все имеющиеся пирожные в коробки и выведите подходящий размещения пирожных по коробкам.
Входные данные
Программа получает на вход два целых числа A и B, записанных в отдельных строках. 1 ≤ A ≤ 109, 1 ≤ B ≤ 109.
Выходные данные
Если можно разложить все пирожные по коробкам в соответствии с условием задачи, программа должна вывести два целых числа. Первое число равно количеству коробок, в которых лежит два круассана и один эклер. Второе число равно количеству коробок, в которых лежит один круассан и два эклера.
Если разложить все пирожные по коробкам нужным нельзя, программа должна вывести одно число −1.
Система оценивания
Решение, правильно работающее только для случаев, когда числа A и B не превосходят 100, будет оцениваться в
//PascalABC.NET версия 3.4.0.1677 от 17.06.18
//Если программа не запускается, то обновите версию
begin
var zarazheno := 1;
var sum := zarazheno;
for var i := 1 to 4 do
begin
zarazheno *= 10;
sum += zarazheno;
WritelnFormat('{2} Новозараженно = {0}, всего заражено = {1}', zarazheno, sum, i);
end;
end.
Вывод
1 Новозараженно = 10, всего заражено = 11
2 Новозараженно = 100, всего заражено = 111
3 Новозараженно = 1000, всего заражено = 1111
4 Новозараженно = 10000, всего заражено = 11111
Исходник ниже.
Объяснение:
#include <iostream>
#include <cmath>
using namespace std;
int main(){
//"\t" - табуляция
//fixed - для вывода фиксированного количества знаков после запятой у вещественного числа
cout << "x\t\ty\t\ta\t\tb\t\tz" << endl;
double x = 0.5;
while(x <= 1.9){
double y = 0.1;
while(y <= 0.2){
double a = cos(x*x*x - sqrt(y));
double b = pow(x * y * y, 1.0 / 3);
double z;
if (a > b){
z = a;
}
else{
z = b;
}
cout << fixed << x << "\t" << y << "\t" << a << "\t" << b << "\t" << z << endl;
y += 0.05;
}
x += 1.1;
}
return 0;
}