0 / 0 / 0
Регистрация: 08.03.2022
Сообщений: 11
1

Рассчитать максимальную успеваемость класса через год

03.04.2022, 14:07. Показов 1162. Ответов 13

За успеваемость!

В некотором классе 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
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.04.2022, 14:07
Ответы с готовыми решениями:

Разработать программу «Успеваемость», позволяющую рассчитать значение среднего балла студента, группы, потока
Разработать программу «Успеваемость», позволяющую рассчитать значение среднего бала студента,...

Создать отчет об результатах экзамена ,определив среднюю успеваемость и качественную успеваемость
Данные о сдаче экзамена группой занесены в таблицу. Создать отчет об анализе результатов экзамена,...

Рассчитать максимальную техническую надёжность принтеров
Приветствую, форумчане. Я потратил большое количество времени на попытки решения одной задачи. Мои...

Рассчитать максимальную выручку от реализации товара
У торговой фирмы на складе имеется N различных сыпучих товаров. Известны масса Mi (в килограммах) и...

Определить, по какому предмету лучше успеваемость у отдельно взятого класса школы
вот нужно код написать по задаче: В структурах А, G, F содержатся оценки учащихся по алгебре,...

13
Диссидент
Эксперт C
26824 / 16733 / 3666
Регистрация: 24.12.2010
Сообщений: 37,452
03.04.2022, 14:15 2
DR01D, Сил хватило только на то, чтобы переписать задачу? Ну что ж, это уже хорошо! На попытки решить задачу, сил, видимо, не осталось!
0
0 / 0 / 0
Регистрация: 08.03.2022
Сообщений: 11
03.04.2022, 14:18  [ТС] 3
Байт, если бы у меня были идеи как это сделать... я почти не представляю как это решать в коде
0
Диссидент
Эксперт C
26824 / 16733 / 3666
Регистрация: 24.12.2010
Сообщений: 37,452
03.04.2022, 14:26 4
DR01D, о хоть что-то написать можешь? Хотябы ввод данных...
0
0 / 0 / 0
Регистрация: 08.03.2022
Сообщений: 11
03.04.2022, 14:33  [ТС] 5
Байт, да конечно
Вы решили эту задачу?

Добавлено через 4 минуты
Байт,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <vector> 
using namespace std;
 
int main()
{
    int a, b, c, d;
    cin >> a >> b >> c >> d;
    if (a<d){
       for (int i = 0; 0 < d; d--){
          i++
       }
    } else{
       for (){
          i++
       }
    }
    return 0;
}
Добавлено через 42 секунды
все что смог осилить, но думаю что иду в неправильном русле
0
Диссидент
Эксперт C
26824 / 16733 / 3666
Регистрация: 24.12.2010
Сообщений: 37,452
03.04.2022, 14:51 6
Цитата Сообщение от DR01D Посмотреть сообщение
Вы решили эту задачу?
Пока нет.
0
0 / 0 / 0
Регистрация: 08.03.2022
Сообщений: 11
03.04.2022, 14:53  [ТС] 7
Байт, осталось 30 минут!!! Я еще попытался решить, не получается
0
Продавец времени
7107 / 3989 / 917
Регистрация: 12.03.2015
Сообщений: 18,751
03.04.2022, 14:54 8
Цитата Сообщение от DR01D Посмотреть сообщение
За успеваемость!
Это тост?
0
0 / 0 / 0
Регистрация: 08.03.2022
Сообщений: 11
03.04.2022, 14:56  [ТС] 9
да...
0
Диссидент
Эксперт C
26824 / 16733 / 3666
Регистрация: 24.12.2010
Сообщений: 37,452
03.04.2022, 14:57 10
DR01D, Сразу замечание. Данные лучше организовать массивом
C++
1
2
3
int a[4];
for (int i=0; i<4; i++)
   cin >> a[i];
Тогда формула успеваемости
C++
1
2
3
int U = 0;
for(int i=0; i,4]; i++)
  U += (i+2)*a[i];
0
0 / 0 / 0
Регистрация: 03.04.2022
Сообщений: 1
03.04.2022, 15:50 11
Pyton
-------------------------
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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)
Я проверил - работает
0
случайный прохожий
2072 / 1343 / 458
Регистрация: 20.07.2013
Сообщений: 3,742
03.04.2022, 21:16 12
Основной код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// UINT = unsigned int
UINT func(UINT a, UINT b, UINT c, UINT d)
{
  const n = 4;
  UINT count[n] = {a, b, c, d}, mark[n] = {2, 3, 4, 5}, sum = 0, min_count, i;
  for (i = 0; i < n; i++)
    sum += count[i] * mark[i];
 
  for (i = 0; i < n; i++)
  {
    UINT tmp = (i + 1 == n) ? 0 : i + 1;
    min_count = (count[i] < count[tmp]) ? count[i] : count[tmp];
    count[i] -= min_count;
    count[tmp] -= min_count;
    sum += min_count;
  }
 
  return sum;
}
Примеры вызовов и результаты:
C++
1
2
3
  func(7, 3, 4, 2);  // 54
  func(15, 27, 30, 20);  // 376
  func(210, 240, 363, 175);  // 3882
0
620 / 419 / 106
Регистрация: 18.01.2021
Сообщений: 1,154
14.04.2022, 08:54 13
Да уж...
Код
print 2*a + 3*b + 4*c + 5*d + min(a+c, b+d)
0
Nishen
14.04.2022, 09:04     Рассчитать максимальную успеваемость класса через год
  #14

Не по теме:

За честь и отвагу! ЗА МОЕГО ОТЦА!

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.04.2022, 09:04

Как сравнить год со строкой, где год указан после числа и месяца через точки
Здравствуйте. Мне нужно отобрать даты, где год больше, чем 1984: Сам понимаю, что такой код:...

Сравнить успеваемость класса по разным предметам (средняя оценка) вывести в порядке убыва6ния
св об успеваемости состоят из фамилии учащегося и оценок по трем предметам, физике математике и выч...

Рассчитать ожидаемое выражение плана ТО за год
Рассчитать ожидаемое выражение плана ТО за год. ТО за 9 мес. составил – 3471 тыс. руб. В октябре...

Рассчитать максимальную емкость ОЗУ, которую может обслужить 24 разрядная шина данных
1. Рассчитать максимальную емкость ОЗУ, которую может обслужить 24 разрядная шина данных 2. Найти...

Как рассчитать максимальную нагрузку на веб сервер. На нем один сайт на DLE
Такая ситуация, нужно рассчитать, какую нагрузку выдержит сервер. На сервере один сайт, работает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru