Advertisement
_CodeBehind

04.Hospital

Jun 25th, 2017
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.80 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. public class Program
  6. {
  7.     public static void Main()
  8.     {
  9.         string currentInputLine;
  10.  
  11.         var departments = new Dictionary<string, List<string>>();
  12.         var doctors = new Dictionary<string, List<string>>();
  13.  
  14.         while ((currentInputLine = Console.ReadLine()) != "Output")
  15.         {
  16.             var tokens = currentInputLine
  17.                 .Trim()
  18.                 .Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries)
  19.                 .ToArray();
  20.  
  21.             var department = tokens[0];
  22.             var doctor = $"{tokens[1]} {tokens[2]}";
  23.             var patient = tokens[3];
  24.  
  25.             if (!departments.ContainsKey(department))
  26.             {
  27.                 departments[department] = new List<string>();
  28.                 departments[department].Add(patient);
  29.             }
  30.             else
  31.             {
  32.                 departments[department].Add(patient);
  33.             }
  34.  
  35.             if (!doctors.ContainsKey(doctor))
  36.             {
  37.                 doctors[doctor] = new List<string>();
  38.                 doctors[doctor].Add(patient);
  39.             }
  40.             else
  41.             {
  42.                 doctors[doctor].Add(patient);
  43.             }
  44.         }
  45.         var roomCapacity = 3;
  46.         while ((currentInputLine = Console.ReadLine()) != "End")
  47.         {
  48.             var doctorOrDepartment = currentInputLine
  49.                 .Trim();
  50.  
  51.             if (departments.ContainsKey(doctorOrDepartment))
  52.             {
  53.                 var departmentName = doctorOrDepartment;
  54.                 var patientsNames = departments[departmentName];
  55.                 Console.WriteLine(string.Join("\r\n", patientsNames));
  56.                 continue;
  57.             }
  58.  
  59.             if (doctors.ContainsKey(doctorOrDepartment))
  60.             {
  61.                 var doctorName = doctorOrDepartment;
  62.                 var patientsNames = doctors[doctorOrDepartment];
  63.                 Console.WriteLine(string.Join("\r\n", patientsNames
  64.                     .OrderBy(x => x)));
  65.                 continue;
  66.             }
  67.             var departmentAndRoom = currentInputLine.Trim().Split();
  68.             if (departments.ContainsKey(departmentAndRoom[0]))
  69.             {
  70.                 var departmentName = departmentAndRoom[0];
  71.                 var roomNumber = int.Parse(departmentAndRoom[1]);
  72.                 var AllPatientsNames = departments[departmentName];
  73.                 IEnumerable<string> patientsInChoosenRoom;
  74.  
  75.                 patientsInChoosenRoom = AllPatientsNames
  76.                     .Skip(((roomNumber - 1) * roomCapacity))
  77.                     .Take(roomCapacity)
  78.                     .OrderBy(x=>x);
  79.  
  80.                 Console.WriteLine(string.Join("\r\n", patientsInChoosenRoom));
  81.             }
  82.         }
  83.     }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement