СРОЧНО
За успеваемость!
В некотором классе a двоечников, b троечников, c хорошистов и d отличников (0⩽a,b,c,d⩽1000). Завуч определяет общую успеваемость класса по формуле a⋅2+b⋅3+c⋅4+d⋅5. Например, если a=2, b=5, c=9 и d=0, то успеваемость класса составит 2⋅2+5⋅3+9⋅4+0⋅5=4+15+36=55.

Классный руководитель по опыту знает, что если за одну парту посадить двух человек с разной успеваемостью (например, x и y), то через год их успеваемость сравняется до значения ⌈x+y2⌉ (x+y пополам, округленное вверх до целой части). Например, если посадить рядом двоечника и троечника, то через год двоечник станет троечником, а троечник так и останется троечником. А если посадить рядом двоечника и отличника, то через год они оба станут хорошистами.

Помогите классному руководителю рассчитать максимальную успеваемость своего класса через год, если рассадить ребят по-новому.

Формат входных данных
Первая строка входных данных содержит четыре неотрицательных целых числа, записанных через пробел: a, b, c и d. Гарантируется четность суммы этих чисел. Считайте, что лишних парт в классе нет.

Формат выходных данных
Выведите одно натуральное число — максимальную возможную успеваемость класса через год.


Пояснение к примеру
В примере в классе один двоечник, два троечника, три хорошиста и четыре отличника. Текущая успеваемость равна 1⋅2+2⋅3+3⋅4+4⋅5=2+6+12+20=40. Учитель посадит за первую парту двоечника и отличника, за вторую и третью — троечника и хорошиста, за четвертую — хорошиста и отличника, за пятую — двух отличников. Через год за первой, второй и третьей партами будут сидеть по два хорошиста, за остальными — отличники. Итоговая успеваемость станет равна 6⋅4+4⋅5=24+20=44.

Ввод
1 2 3 4
Вывод
44


Shmeven: artemka324
kolagurov9: Артём Рейзов
NightTheme: пожалуйста дайте решение хоть в комментариях!
ItmMan7144: напишите в тг как решать: ItMan7145
kolagurov9: include
#include

int main()
{
std::string n;
std::cin >> n;

int ds = std::accumulate(n.begin(), n.end(), 0, [](int init, int v) { return init + v - '0'; });
int r = 3 - ds % 3;

bool b{};
for (auto& it : n) {
if (it - '0' + r > 9) continue;
it += r;
while (it - '0' + 3 <= 9) it += 3;
b = true;
break;
}
if (!b) n.back() -= r % 3 ? 3 - r : r;

std::cout << n;

return 0;
}
kolagurov9: это 6
NightTheme: а на пайтон нет?
WonderfulPENDEL: Z lfk jndtn - gjcvjnhbnt
WonderfulPENDEL: Я дал ответ - посмотрите
avfedeev: Неплохо

Ответы

Ответ дал: WonderfulPENDEL
0

Ответ:

two,tree,four,five=map(int, input().split())

a = min(five,four)

five -= a

four -= a

b = min(four,tree)

tree -= b

four -= b

c = min(tree,two)

tree -= c

two -= c

d = min(two,five)

five -= d

two -= d

m = ((a * 5 + b * 4 + c * 3 + d * 4) * 2) + (two * 2) + (tree * 3) + (four * 4) + (five * 5)

print(m)

Объяснение:

Приложения:
Вас заинтересует