SHARE
TWEET

Feed the Animals

a guest Jul 21st, 2019 180 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top