СРОЧНО
За успеваемость!
В некотором классе 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
#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;
}
Ответы
Ответ дал:
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)
Объяснение:
Приложения:
![](https://st.uroker.com/files/45d/45d21c79a23341bb8ae49045a6ab5245.png)
Вас заинтересует
1 год назад
1 год назад
1 год назад
7 лет назад
7 лет назад
8 лет назад
8 лет назад