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

Помогите написать программу С#

JZEV KARPINSKI Ученик (143), на голосовании 5 месяцев назад
Компания «Везет», предоставляющая услуги такси, хочет премировать самого лучшего (заработавшего больше всех денег) таксиста за месяц. У нее есть данные о всех поездках: время поездки, класс поездки (эконом, комфорт, бизнес) и имя водителя такси. Напишите программу, которая по этим данным вычислит таксиста, который заработал больше всех денег за месяц. Известно, что 1 минута эконом-класса стоит 8 рублей, 1 минута комфорт-класса стоит 12 рублей, а 1 минута бизнес-класса стоит 24 рубля.
Входные данные:
Вводится натуральное число n – количество совершенных поездок. Далее вводятся n строк со временем поездки, классом поездки и именем таксиста. В каждой из таких строк идет сначала время (натуральное число), потом пробел, потом класс поездки («E» - эконом, «K» - комфорт, «B» - бизнес) и имя таксиста, без пробелов (строка из латинских букв).
 
Выходные данные:
Вывести строку – имя водителя такси, заработавшего наибольшее количество денег. Гарантируется, что такой таксист один.
 
Так, например, если программе на вход будут поданы следующие данные:
5
76 BNata
44 KTimur
94 KAnna
26 KAnna
52 EMikhail
то она должна вывести «Nata».
 
В поле краткого ответа введите строку, которая получается в результате работы программы на входных данных из файла «6.1.txt»

https://futurecode.rustest.ru/storage/ekim_images/kb_files_c_grille/6.2.txt
Голосование за лучший ответ
MeLoMaN Профи (653) 6 месяцев назад
using System;
using System.Collections.Generic;

class Program
{
static void Main()
{
int n = int.Parse(Console.ReadLine());
Dictionary<string, int> earnings = new Dictionary<string, int>();

for (int i = 0; i < n; i++)
{
string[] tripData = Console.ReadLine().Split();
int minutes = int.Parse(tripData[0]);
char tripClass = tripData[1][0];
string driverName = tripData[1].Substring(1);

int pricePerMinute = GetPricePerMinute(tripClass);
int earning = minutes * pricePerMinute;

if (earnings.ContainsKey(driverName))
earnings[driverName] += earning;
else
earnings.Add(driverName, earning);
}

string topEarner = "";
int maxEarnings = int.MinValue;

foreach (var pair in earnings)
{
if (pair.Value > maxEarnings)
{
maxEarnings = pair.Value;
topEarner = pair.Key;
}
}

Console.WriteLine(topEarner);
}

static int GetPricePerMinute(char tripClass)
{
switch (tripClass)
{
case 'E':
return 8;
case 'K':
return 12;
case 'B':
return 24;
default:
throw new ArgumentException("Invalid trip class.");
}
}
}
JZEV KARPINSKIУченик (143) 6 месяцев назад
какой ответ?
Денис Дейнека Знаток (312) 6 месяцев назад
using System;
using System.Collections.Generic;

class Program
{
static void Main()
{
int n = int.Parse(Console.ReadLine());
Dictionary<string, int> earnings = new Dictionary<string, int>();

for (int i = 0; i < n; i++)
{
string[] tripData = Console.ReadLine().Split();
int minutes = int.Parse(tripData[0]);
char tripClass = tripData[1][0];
string driverName = tripData[1].Substring(1);

int pricePerMinute = GetPricePerMinute(tripClass);
int earning = minutes * pricePerMinute;

if (earnings.ContainsKey(driverName))
earnings[driverName] += earning;
else
earnings.Add(driverName, earning);
}

string topEarner = "";
int maxEarnings = int.MinValue;

foreach (var pair in earnings)
{
if (pair.Value > maxEarnings)
{
maxEarnings = pair.Value;
topEarner = pair.Key;
}
}

Console.WriteLine(topEarner);
}

static int GetPricePerMinute(char tripClass)
{
switch (tripClass)
{
case 'E':
return 8;
case 'K':
return 12;
case 'B':
return 24;
default:
throw new ArgumentException("Invalid trip class.");
}
}
}
JZEV KARPINSKIУченик (143) 6 месяцев назад
какой ответ?
Похожие вопросы