Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace Feed_the_beast
- {
- class MainClass
- {
- static Dictionary<string, Animal> animals = new Dictionary<string, Animal>();
- public static void Main(string[] args)
- {
- while(true)
- {
- var data = Console.ReadLine().Split(':');
- switch(data[0])
- {
- case "Last Info":PrintResult();return;
- case "Add": AddEntry(data);break;
- case "Feed":UpdateAnimal(data);break;
- }
- }
- }
- static void PrintResult()
- {
- Console.WriteLine("Animals:");
- foreach (var item in animals.OrderByDescending(x => x.Value.foodLimit).ThenBy(x => x.Key))
- {
- Console.WriteLine($"{item.Key} -> {item.Value.foodLimit}g");
- }
- Console.WriteLine("Areas with hungry animals:");
- var result = animals.GroupBy(x => x.Value.area).Where(x => x.Any()).OrderByDescending(x => x.Count());
- foreach (var item in result)
- {
- Console.WriteLine($"{item.Key} : {item.Count()}");
- }
- }
- static void UpdateAnimal(string[] data)
- {
- string animalName = data[1];
- int food = int.Parse(data[2]);
- if (animals.ContainsKey(animalName))
- {
- animals[animalName].foodLimit -= food;
- if (animals[animalName].foodLimit <= 0)
- {
- animals.Remove(animalName);
- Console.WriteLine($"{animalName} was successfully fed");
- }
- }
- }
- static void AddEntry(string[] data)
- {
- string animalName = data[1];
- int foodLimit = int.Parse(data[2]);
- string area = data[3];
- if (animals.ContainsKey(animalName))
- {
- animals[animalName].foodLimit += foodLimit;
- }
- else
- animals[animalName] = new Animal(area, foodLimit);
- }
- }
- class Animal
- {
- public string area;
- public int foodLimit;
- public Animal(string area, int limit)
- {
- this.area = area;
- foodLimit = limit;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement