Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- class DragonArmy
- {
- static void Main(string[] args)
- {
- int count = int.Parse(Console.ReadLine());
- var dragons = new Dictionary<string, Dictionary<string, Dragon>>();
- for (int currentDragon = 0; currentDragon < count; currentDragon++)
- {
- string[] input = Console.ReadLine()
- .Split()
- .ToArray();
- string type = input[0];
- string name = input[1];
- string damage = input[2];
- string health = input[3];
- string armor = input[4];
- if (dragons.ContainsKey(type) == false)
- {
- dragons.Add(type, new Dictionary<string, Dragon>());
- }
- Dragon dragon = new Dragon(damage, health, armor);
- dragons[type][name] = dragon;
- }
- foreach (var type in dragons)
- {
- double averageDamage = type.Value.Values.Average(x => x.Damage);
- double averageHealth = type.Value.Values.Average(x => x.Health);
- double averageArmor = type.Value.Values.Average(x => x.Armor);
- Console.WriteLine($"{type.Key}::({averageDamage:F2}/{averageHealth:F2}/{averageArmor:F2})");
- foreach (var name in type.Value.OrderBy(x => x.Key))
- {
- Console.WriteLine($"-{name.Key} -> damage: {name.Value.Damage}, health: {name.Value.Health}, armor: {name.Value.Armor}");
- }
- }
- }
- }
- class Dragon
- {
- private const int defaultDamage = 45;
- private const int defaultHealth = 250;
- private const int defaultArmor = 10;
- public Dragon(string damage, string health, string armor)
- {
- this.Damage = damage == "null" ? defaultDamage : int.Parse(damage);
- this.Health = health == "null" ? defaultHealth : int.Parse(health);
- this.Armor = armor == "null" ? defaultArmor : int.Parse(armor);
- }
- public int Damage { get; }
- public int Health { get; }
- public int Armor { get; }
- }
Advertisement
Add Comment
Please, Sign In to add comment