Advertisement
Guest User

Feed the Animals

a guest
Jul 21st, 2019
315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.04 KB | None | 0 0
  1. using System;
  2. using System.Text.RegularExpressions;
  3. using System.Text;
  4. using System.Linq;
  5. using System.Numerics;
  6. using System.Collections.Generic;
  7.  
  8. namespace DemoFinalExam
  9. {
  10. class Program
  11. {
  12. static void Main(string[] args)
  13. {
  14. string input = Console.ReadLine();
  15. var saveStats = new Dictionary<string, Dictionary<string, int>>();
  16. while (input != "Last Info")
  17. {
  18. var splitedInput = input
  19. .Split(":", StringSplitOptions.RemoveEmptyEntries)
  20. .ToList();
  21. string mainCommand = splitedInput[0];
  22. switch (mainCommand)
  23. {
  24. case "Add":
  25. string animalName = splitedInput[1];
  26. int food = int.Parse(splitedInput[2]);
  27. string area = splitedInput[3];
  28. if (!saveStats.ContainsKey(area))
  29. {
  30. saveStats[area] = new Dictionary<string, int>();
  31. }
  32. if (!saveStats[area].ContainsKey(animalName))
  33. {
  34. saveStats[area][animalName] = 0;
  35. }
  36. saveStats[area][animalName] += food;
  37. break;
  38. case "Feed":
  39. animalName = splitedInput[1];
  40. int foodInNeed = int.Parse(splitedInput[2]);
  41. area = splitedInput[3];
  42. if (saveStats.ContainsKey(area))
  43. {
  44. if (saveStats[area].ContainsKey(animalName))
  45. {
  46. saveStats[area][animalName] -= foodInNeed;
  47. if (saveStats[area][animalName] <= 0)
  48. {
  49. Console.WriteLine($"{animalName} was successfully fed");
  50. saveStats[area].Remove(animalName);
  51. }
  52. }
  53. }
  54. break;
  55. }
  56.  
  57. input = Console.ReadLine();
  58. }
  59. Console.WriteLine($"Animals:");
  60. foreach (var valuesOfStats in saveStats.Where(x => x.Value.Values.Count > 0).OrderByDescending(x => x.Value.Values.Max()).ThenBy(x => x.Value.Keys))
  61. {
  62. foreach (var item in valuesOfStats.Value.OrderByDescending(x => x.Value).ThenBy(x => x.Key))
  63. {
  64. Console.WriteLine($"{item.Key} -> {item.Value}g");
  65. }
  66. }
  67. Console.WriteLine("Areas with hungry animals:");
  68. foreach (var second in saveStats.Where(x => x.Value.Values.Count > 0).OrderByDescending(x => x.Value.Values.Count))
  69. {
  70. Console.WriteLine($"{second.Key} : {second.Value.Count}");
  71. }
  72. }
  73. }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement