WindFell

Dragon Army

Jun 27th, 2018
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.78 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. class DragonArmy
  6. {
  7.     static void Main(string[] args)
  8.     {
  9.         int count = int.Parse(Console.ReadLine());
  10.  
  11.         var dragons = new Dictionary<string, Dictionary<string, Dragon>>();
  12.  
  13.         for (int currentDragon = 0; currentDragon < count; currentDragon++)
  14.         {
  15.             string[] input = Console.ReadLine()
  16.                 .Split()
  17.                 .ToArray();
  18.  
  19.             string type = input[0];
  20.             string name = input[1];
  21.             string damage = input[2];
  22.             string health = input[3];
  23.             string armor = input[4];
  24.  
  25.             if (dragons.ContainsKey(type) == false)
  26.             {
  27.                 dragons.Add(type, new Dictionary<string, Dragon>());
  28.             }
  29.  
  30.             Dragon dragon = new Dragon(damage, health, armor);
  31.  
  32.             dragons[type][name] = dragon;
  33.         }
  34.  
  35.         foreach (var type in dragons)
  36.         {
  37.             double averageDamage = type.Value.Values.Average(x => x.Damage);
  38.             double averageHealth = type.Value.Values.Average(x => x.Health);
  39.             double averageArmor = type.Value.Values.Average(x => x.Armor);
  40.  
  41.             Console.WriteLine($"{type.Key}::({averageDamage:F2}/{averageHealth:F2}/{averageArmor:F2})");
  42.  
  43.             foreach (var name in type.Value.OrderBy(x => x.Key))
  44.             {
  45.                 Console.WriteLine($"-{name.Key} -> damage: {name.Value.Damage}, health: {name.Value.Health}, armor: {name.Value.Armor}");
  46.             }
  47.         }
  48.     }
  49. }
  50.  
  51. class Dragon
  52. {
  53.     private const int defaultDamage = 45;
  54.     private const int defaultHealth = 250;
  55.     private const int defaultArmor = 10;
  56.     public Dragon(string damage, string health, string armor)
  57.     {
  58.         this.Damage =  damage == "null" ? defaultDamage : int.Parse(damage);
  59.         this.Health = health == "null" ? defaultHealth : int.Parse(health);
  60.         this.Armor = armor == "null" ? defaultArmor : int.Parse(armor);
  61.     }
  62.  
  63.     public int Damage { get; }
  64.     public int Health { get; }
  65.     public int Armor { get; }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment