/
DIANATAG
/
karM
Обзор
Документация
Войти
/
DIANATAG
/
karM
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Program.cs
85 строк
3 KB
DIANATAG
create: Program.cs
05 май 2026, 17:31
Верифицирован
05 май 2026, 17:31
8f1d455
Код
Авторство
О чём код?
using System; using System.Collections.Generic; using System.Linq; public class Logistics { public static void Main(string[] args) { // 1. Чтение количества операций int n = int.Parse(Console.ReadLine()); // Словарь для хранения общего заработка каждого сотрудника // Ключ: имя сотрудника (string) // Значение: общий заработок (double) Dictionary<string, double> employeeSalaries = new Dictionary<string, double>(); // 2. Обработка каждой операции for (int i = 0; i < n; i++) { string line = Console.ReadLine(); string[] parts = line.Split(' '); int timeMinutes = int.Parse(parts[0]); int numBoxes = int.Parse(parts[1]); char difficulty = char.Parse(parts[2]); string employeeName = parts[3]; // 3. Расчет заработка за текущую операцию double salaryForOperation = CalculateOperationSalary(timeMinutes, numBoxes, difficulty); // 4. Обновление общего заработка сотрудника if (employeeSalaries.ContainsKey(employeeName)) { employeeSalaries[employeeName] += salaryForOperation; } else { employeeSalaries.Add(employeeName, salaryForOperation); } } // 5. Поиск сотрудника с максимальным заработком string topEarnerName = ""; double maxSalary = -1; // Инициализируем минимальным возможным значением foreach (var kvp in employeeSalaries) { if (kvp.Value > maxSalary) { maxSalary = kvp.Value; topEarnerName = kvp.Key; } } // 6. Вывод результата Console.WriteLine(topEarnerName); } // Метод для расчета заработка за одну операцию public static double CalculateOperationSalary(int timeMinutes, int numBoxes, char difficulty) { double salary = 0; // За каждую минуту работы salary += timeMinutes * 2.0; // За каждую коробку, в зависимости от сложности switch (difficulty) { case 'L': // Легкий salary += numBoxes * 3.0; break; case 'N': // Нормальный salary += numBoxes * 4.0; break; case 'H': // Сложный salary += numBoxes * 5.0; break; default: // Обработка некорректного уровня сложности, если потребуется break; } return salary; } }