В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
Никита0088
Никита0088
21.04.2022 05:59 •  Информатика

Написать программу, которая вводит два целых числа a и b (a ≤ b) и выводит сумму квадратов всех чисел от a до b.

Показать ответ
Ответ:
Qwan
Qwan
05.06.2020 12:08
#include <iostream>
#include <map>
#include <vector>

using namespace std;

map<pair<int, int>, int> saved_rec;
map<int, pair<int, int>> path;

int max_cost(const vector<int>& cost, int day, int length)
{
    if (day + 1 < length)
        length = day + 1;
    if (saved_rec[make_pair(day, length)] != 0)
        return saved_rec[make_pair(day, length)];

    int tmp_cost, max = cost[day] * length, max_i = length;

    if (day != 0)
        for (int i = 0; i <= length; ++i)
        {
            
            tmp_cost = max_cost(cost, day - 1, length-i)
                + cost[day] * i;
            if (tmp_cost > max)
            {
                max = tmp_cost;
                max_i = i;
            }
        }

    saved_rec[make_pair(day, length)] = max;
    if (max_i != 0)
        path[max] = make_pair(day, max_i);
    return max;
}

int main()
{
    vector<int> cost = { 6, 2, 5, 4, 5, 3, 3, 4};

    int last_day_num = cost.size() - 1,
        total_length = cost.size(),
        max;
    
    max = max_cost(cost, last_day_num, total_length);
    cout << "Max profit: " << max << endl;

    pair<int, int> day_count;
    int sm = 0;
    
    do
    {
        day_count = path[max];
        cout << "Day: " << day_count.first << ", length: " << day_count.second << endl;
        max -= cost[day_count.first] * day_count.second;
    } while (max != 0);
}
0,0(0 оценок)
Ответ:
Kseniamaria
Kseniamaria
09.06.2022 09:29
Var
  marka:array[1..4] of string=('АИ-92','АИ-95','АИ-98','ДТ');
  cena:array[1..4] of real=(35.50,38.50,41.70,34.50);
  i,k,v:integer;
begin
  Writeln('Укажите код топлива');
  for i:=1 to 4 do Write(i,' - ',marka[i],', ');
  Write(' ? ');
  Read(k);
  if (k>0) and (k<=4) then
    begin
    Write('Количество литров: '); Read(v);
    Writeln;
    Writeln('Топливо: ',marka[k]);
    Writeln('Количество, л: ',v);
    Writeln('Цена за 1л, руб: ',cena[k]:0:2);
    Writeln('К оплате, руб: ',v*cena[k]:0:2)
    end
  else
    Writeln('Вы ввели неверное значение')
end.
   
Пример работы программы

Укажите код топлива
1 - АИ-92, 2 - АИ-95, 3 - АИ-98, 4 - ДТ,  ? 4
Количество литров: 56

Топливо: ДТ
Количество, л: 56
Цена за 1л, руб: 34.50
К оплате, руб: 1932.00
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота