Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

Александр Загорский Ученик (207), на голосовании 5 месяцев назад
Компания «Престиж», предоставляющая услуги такси, хочет премировать самого лучшего (заработавшего больше всех денег) таксиста за месяц. У нее есть данные о всех поездках: время поездки, класс поездки (эконом, комфорт, бизнес) и имя водителя такси. Напишите программу, которая по этим данным вычислит таксиста, который заработал больше всех денег за месяц. Известно, что 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
Голосование за лучший ответ
Андрей Кун Знаток (327) 6 месяцев назад
Чё за тимур?
Могу за 100р сделать
olimchik Мастер (1233) 6 месяцев назад
 #include  
#include
#include
#include

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

std::unordered_map 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. Вывод результата: Имя водителя с наибольшим заработком выводится на экран.

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