Advertisement
WindFell

UniverseFriends

May 28th, 2018
324
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.46 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. class UniverseFriends
  7. {
  8.     static void Main(string[] args)
  9.     {
  10.         var database = new SortedDictionary<string, Dictionary<string, int>>();
  11.  
  12.         ParseInput(database);
  13.         Console.WriteLine(GetResult(database));
  14.     }
  15.  
  16.     private static void ParseInput(SortedDictionary<string, Dictionary<string, int>> database)
  17.     {
  18.         string input;
  19.  
  20.         while ((input = Console.ReadLine()) != "End")
  21.         {
  22.             string[] inputArgs = input
  23.                 .Split(new char[] { ' ', '-', '>', ':' }, StringSplitOptions.RemoveEmptyEntries);
  24.  
  25.             string personName = inputArgs[0];
  26.             string liquidName = inputArgs[1];
  27.             int jarCount = int.Parse(inputArgs[2]);
  28.  
  29.             if (database.ContainsKey(personName) == false)
  30.             {
  31.                 database.Add(personName, new Dictionary<string, int>());
  32.             }
  33.  
  34.             if (database[personName].ContainsKey(liquidName) == false)
  35.             {
  36.  
  37.                 database[personName].Add(liquidName, 0);
  38.             }
  39.  
  40.             database[personName][liquidName] += jarCount;
  41.         }
  42.     }
  43.  
  44.     private static string GetResult(SortedDictionary<string, Dictionary<string, int>> database)
  45.     {
  46.         StringBuilder builder = new StringBuilder();
  47.  
  48.         foreach (var person in database)
  49.         {
  50.             builder.AppendLine($"{person.Key} Liquids:");
  51.  
  52.             foreach (var liquid in person.Value.OrderBy(l => l.Value))
  53.             {
  54.  
  55.                 builder.AppendLine($"--- {liquid.Key}: { liquid.Value}");
  56.             }
  57.         }
  58.  
  59.         string result = builder.ToString().TrimEnd();
  60.         return result;
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement