Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Text.RegularExpressions;
- using System.Text;
- using System.Linq;
- using System.Numerics;
- using System.Collections.Generic;
- namespace DemoFinalExam
- {
- class Program
- {
- static void Main(string[] args)
- {
- string input = Console.ReadLine();
- var saveStats = new Dictionary<string, Dictionary<string, int>>();
- while (input != "Last Info")
- {
- var splitedInput = input
- .Split(":", StringSplitOptions.RemoveEmptyEntries)
- .ToList();
- string mainCommand = splitedInput[0];
- switch (mainCommand)
- {
- case "Add":
- string animalName = splitedInput[1];
- int food = int.Parse(splitedInput[2]);
- string area = splitedInput[3];
- if (!saveStats.ContainsKey(area))
- {
- saveStats[area] = new Dictionary<string, int>();
- }
- if (!saveStats[area].ContainsKey(animalName))
- {
- saveStats[area][animalName] = 0;
- }
- saveStats[area][animalName] += food;
- break;
- case "Feed":
- animalName = splitedInput[1];
- int foodInNeed = int.Parse(splitedInput[2]);
- area = splitedInput[3];
- if (saveStats.ContainsKey(area))
- {
- if (saveStats[area].ContainsKey(animalName))
- {
- saveStats[area][animalName] -= foodInNeed;
- if (saveStats[area][animalName] <= 0)
- {
- Console.WriteLine($"{animalName} was successfully fed");
- saveStats[area].Remove(animalName);
- }
- }
- }
- break;
- }
- input = Console.ReadLine();
- }
- Console.WriteLine($"Animals:");
- foreach (var valuesOfStats in saveStats.Where(x => x.Value.Values.Count > 0).OrderByDescending(x => x.Value.Values.Max()).ThenBy(x => x.Value.Keys))
- {
- foreach (var item in valuesOfStats.Value.OrderByDescending(x => x.Value).ThenBy(x => x.Key))
- {
- Console.WriteLine($"{item.Key} -> {item.Value}g");
- }
- }
- Console.WriteLine("Areas with hungry animals:");
- foreach (var second in saveStats.Where(x => x.Value.Values.Count > 0).OrderByDescending(x => x.Value.Values.Count))
- {
- Console.WriteLine($"{second.Key} : {second.Value.Count}");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement