Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- public class Program
- {
- public static void Main()
- {
- string currentInputLine;
- var departments = new Dictionary<string, List<string>>();
- var doctors = new Dictionary<string, List<string>>();
- while ((currentInputLine = Console.ReadLine()) != "Output")
- {
- var tokens = currentInputLine
- .Trim()
- .Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries)
- .ToArray();
- var department = tokens[0];
- var doctor = $"{tokens[1]} {tokens[2]}";
- var patient = tokens[3];
- if (!departments.ContainsKey(department))
- {
- departments[department] = new List<string>();
- departments[department].Add(patient);
- }
- else
- {
- departments[department].Add(patient);
- }
- if (!doctors.ContainsKey(doctor))
- {
- doctors[doctor] = new List<string>();
- doctors[doctor].Add(patient);
- }
- else
- {
- doctors[doctor].Add(patient);
- }
- }
- var roomCapacity = 3;
- while ((currentInputLine = Console.ReadLine()) != "End")
- {
- var doctorOrDepartment = currentInputLine
- .Trim();
- if (departments.ContainsKey(doctorOrDepartment))
- {
- var departmentName = doctorOrDepartment;
- var patientsNames = departments[departmentName];
- Console.WriteLine(string.Join("\r\n", patientsNames));
- continue;
- }
- if (doctors.ContainsKey(doctorOrDepartment))
- {
- var doctorName = doctorOrDepartment;
- var patientsNames = doctors[doctorOrDepartment];
- Console.WriteLine(string.Join("\r\n", patientsNames
- .OrderBy(x => x)));
- continue;
- }
- var departmentAndRoom = currentInputLine.Trim().Split();
- if (departments.ContainsKey(departmentAndRoom[0]))
- {
- var departmentName = departmentAndRoom[0];
- var roomNumber = int.Parse(departmentAndRoom[1]);
- var AllPatientsNames = departments[departmentName];
- IEnumerable<string> patientsInChoosenRoom;
- patientsInChoosenRoom = AllPatientsNames
- .Skip(((roomNumber - 1) * roomCapacity))
- .Take(roomCapacity)
- .OrderBy(x=>x);
- Console.WriteLine(string.Join("\r\n", patientsInChoosenRoom));
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement