alarm
Задайте вопрос
Информатика
multitude

На С++ Дам 10 поинтов На завод У Пети есть X граммов краски, а у Васи — Y граммов краски. Одного грамма краски хватает, чтобы покрасить плитку 1×1. На заводе есть неограниченное количество квадратных плиток любых размеров. Петя выберет максимальную плитку, на которую у него хватит краски. Вася поступит аналогично. Таня работает в плановом отделе, и в её интересах сделать так, чтобы суммарно было потрачено как можно больше краски. Поэтому Таня интересуется: а что если Петя отдаст всю свою краску Васе? Получится ли тогда потратить больше краски или нет?В данной задаче запрещено использовать функцию sqrt, а также операцию возведения в степень. Входные данныеВ двух строках входных данных содержатся натуральные числа x и y — количество краски у Пети и Васи соответственно. Все числа не превышают 1000. Выходные данныеЕсли выгоднее будет отдать всю краску Васе, то выведите на экран "Petya gives paint to Vasya". Если выгоднее оставить краску у Пети, то выведите на экран "Petya leaves paint to himself". Если расход краски в обоих случаях одинаков, то выведите "Equal". Пояснения к тестамВ первом тесте, если Петя оставит краску у себя, то Петя и Вася смогут закрасить по плитке стороной 3 метра и потратить 18 граммов краски. Если же Петя отдаст краску Васе, то Вася закрасит плитку стороной 4 метра и потратит 16 граммов краски. Во втором тесте независимо от стратегии Пети получится потратить 25 граммов краски. В третьем тесте Пете выгоднее отдать краску Васе, в этом случае получится потратить 16 граммов краски (вместо 13 в противном случае). ПримерыВводВывод1010Petya leaves paint to himself1020Equal107Petya gives paint to Vasya

ответы: 1
Зарегистрируйтесь, чтобы добавить ответ
Ответ:

:

#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;

}

195
Antoniya
Чтобы ответить необходимо зарегистрироваться.

Другие вопросы: - Информатика

Спершу яблука. В кошику лежать A

Нужно расшифровать кое-что. Шифр

посчитайте с информатикой

Где ошибка в программе? Моя прог

На завод У Пети есть X граммов к

На С++Даю 10 поинтов Числа Фи

Контакты
Реклама на сайте