
СРОЧНО НА С++ На завод! У Пети есть X граммов краски, а у Васи — Y граммов краски. Одного грамма
краски хватает, чтобы покрасить плитку 1×1. На заводе есть неограниченное количество квадратных плиток любых размеров. Петя выберет максимальную плитку, на которую у него хватит краски. Вася поступит аналогично. Таня работает в плановом отделе, и в её интересах сделать так, чтобы суммарно было потрачено как можно больше краски. Поэтому Таня интересуется: а что если Петя отдаст всю свою краску Васе? Получится ли тогда потратить больше краски или нет? В данной задаче запрещено использовать функцию sqrt, а также операцию возведения в степень. Примеры Ввод 10 10 Вывод Petya leaves paint to himself

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

Ответ:
#include <iostream>
unsigned perfectSquareLessOrEqual(unsigned n) {
unsigned sum = 0;
for (unsigned i = 1; (sum + i) <= n; i += 2)
sum += i;
return sum;
}
int main() {
unsigned x, y;
std::cin >> x >> y;
const unsigned a = perfectSquareLessOrEqual(x) + perfectSquareLessOrEqual(y);
const unsigned b = perfectSquareLessOrEqual(x + y);
if (a < b)
std::cout << "Petya gives paint to Vasya";
else if (a > b)
std::cout << "Petya leaves paint to himself";
else
std::cout << "Equal";
return 0;
}
Объяснение:



Для решения этой задачи вам необходимо определить максимальный квадрат, который Петя и Вася могут покрасить, используя свои граммы краски. Затем вы должны определить, сколько краски останется у Пети, если он отдаст всю свою краску Васе.
Ваша цель - найти такой максимальный размер квадрата, который Петя и Вася могут покрасить. Для этого вы можете просто находить минимум из X и Y, так как каждому из них нужно хотя бы по одному грамму краски.
Затем вы определяете, сколько краски останется у Пети, если он отдаст ее Васе. Это можно сделать, вычтя количество краски, необходимое для покраски максимального квадрата из его исходного запаса X:
cpp#include <iostream>
using namespace std;
int main() {
int X, Y;
cin >> X >> Y;
// Находим минимум из X и Y, это максимальный квадрат, который они могут покрасить
int maxSquare = min(X, Y);
// Остаток краски у Пети после покраски максимального квадрата
int remainingPaint = X - maxSquare;
if (remainingPaint > 0) {
cout << "Petya leaves paint to himself";
} else {
cout << "Vasya leaves paint to himself";
}
return 0;
}
Этот код сначала находит максимальный квадрат, который Петя и Вася могут покрасить, а затем вычисляет остаток краски у Пети. Если остаток больше нуля, то Петя оставит краску себе, иначе Вася оставит краску себе.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili