Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Problem_4___Hospital
- {
- public class StartUp
- {
- public static void Main(string[] args)
- {
- var input = Console.ReadLine().Trim();
- var deparments = new Dictionary<string,List<string>>();
- var doctors = new Dictionary<string,SortedSet<string>>();
- while (!input.ToLower().Equals("output"))
- {
- var tokens = input.Split(new[] {' ', '\t'}, StringSplitOptions.RemoveEmptyEntries).ToArray();
- var dep = tokens[0];
- var doc = tokens[1] + " " + tokens[2];
- var patient = tokens[3];
- if (!deparments.ContainsKey(dep))
- {
- deparments.Add(dep,new List<string>());
- }
- deparments[dep].Add(patient);
- if (!doctors.ContainsKey(doc))
- {
- doctors.Add(doc,new SortedSet<string>());
- }
- doctors[doc].Add(patient);
- input = Console.ReadLine().Trim();
- }
- input = Console.ReadLine().Trim();
- while (!input.ToLower().Equals("end"))
- {
- if (deparments.ContainsKey(input))
- {
- deparments[input].ForEach(Console.WriteLine);
- }
- else if (doctors.ContainsKey(input))
- {
- doctors[input].ToList().ForEach(Console.WriteLine);
- }
- else
- {
- var tokens = input.Split(new[] {' ', '\t'}, StringSplitOptions.RemoveEmptyEntries).ToArray();
- var dep = tokens[0];
- int room;
- var hasParsed = int.TryParse(tokens[1], out room);
- if (hasParsed)
- {
- var startIndex = room * 3 - 3;
- if (startIndex<=deparments[dep].Count-3)
- {
- deparments[dep].Skip(startIndex).Take(3).OrderBy(p=>p).ToList().ForEach(Console.WriteLine);
- }
- else
- {
- if (startIndex<=deparments[dep].Count)
- {
- deparments[dep].Skip(startIndex).Take(deparments[dep].Count-startIndex).OrderBy(p => p).ToList().ForEach(Console.WriteLine);
- }
- }
- }
- }
- input = Console.ReadLine();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement