Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Программирование C++ написание кода

Компания «Престиж», предоставляющая услуги такси, хочет премировать самого лучшего (заработавшего больше всех денег) таксиста за месяц. У нее есть данные о всех поездках: время поездки, класс поездки (эконом, комфорт, бизнес) и имя водителя такси. Напишите программу, которая по этим данным вычислит таксиста, который заработал больше всех денег за месяц. Известно, что 1 минута эконом-класса стоит 5 рублей, 1 минута комфорт-класса стоит 10 рублей, а 1 минута бизнес-класса стоит 25 рублей.



Входные данные:

Вводится натуральное число n – количество совершенных поездок. Далее вводятся n строк со временем поездки, классом поездки и именем таксиста. В каждой из таких строк идет сначала время (натуральное число), потом пробел, потом класс поездки («E» - эконом, «K» - комфорт, «B» - бизнес) и имя таксиста без пробела (строка из латинских букв).


Выходные данные:

Вывести строку – имя водителя такси, заработавшего наибольшее количество денег. Гарантируется, что такой таксист один.


Так, например, если программе на вход будут поданы следующие данные:

5
12 KAnton

22 EOlya

17 BTimur

16 KOlya

10 EAnton

то она должна вывести «Timur».



В поле краткого ответа введите строку, которая получается в результате работы программы на входных данных из файла «6.2.txt»
https://futurecode.rustest.ru/storage/ekim_images/kb_files_c++/6.2.txt

По дате
По рейтингу
Аватар пользователя
Мастер
12345678910111213141516171819202122232425262728293031323334353637383940414243
 #include <iostream> 
#include <string> 
#include <unordered_map> 
#include <algorithm> 
 
int main() { 
    int n; 
    std::cin >> n; 
 
    std::unordered_map<std::string, int> earnings; 
    for (int i = 0; i < n; ++i) { 
        int time; 
        char classType; 
        std::string driverName; 
        std::cin >> time >> classType >> driverName; 
 
        int rate = 0; 
        if (classType == 'E') { 
            rate = 5; 
        } else if (classType == 'K') { 
            rate = 10; 
        } else if (classType == 'B') { 
            rate = 25; 
        } 
 
        earnings[driverName] += time * rate; 
    } 
 
    // Find the driver with the maximum earnings 
    std::string bestDriver; 
    int maxEarnings = 0; 
 
    for (const auto& entry : earnings) { 
        if (entry.second > maxEarnings) { 
            maxEarnings = entry.second; 
            bestDriver = entry.first; 
        } 
    } 
 
    std::cout << bestDriver << std::endl; 
 
    return 0; 
} 

1. Ввод данных: Программа сначала считывает количество поездок n.
2. Обработка каждой поездки: Для каждой поездки считываются время, класс поездки и имя водителя. В зависимости от класса поездки определяется стоимость минуты (5 рублей для эконом-класса, 10 рублей для комфорт-класса, 25 рублей для бизнес-класса).
3. Сохранение заработка: В заработок каждого водителя добавляется стоимость текущей поездки.
4. Поиск самого прибыльного водителя: Программа находит водителя с максимальным заработком, перебирая все записи в словаре earnings.
5. Вывод результата: Имя водителя с наибольшим заработком выводится на экран.

Этот код позволяет определить водителя, который заработал больше всех за месяц, основываясь на данных о поездках.

Аватар пользователя
Мастер

Kirill

Аватар пользователя
Знаток

Чё за тимур?
Могу за 100р сделать