Advertisement
ghostd0g

Untitled

Feb 18th, 2018
724
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.69 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace DragonsSoftUni
  8. {
  9.  
  10.     class Dragons
  11.     {
  12.         public string DragonType { get; set; }
  13.         public string Name { get; set; }
  14.         public decimal Damage { get; set; }
  15.         public decimal Health { get; set; }
  16.         public decimal Armor { get; set; }
  17.  
  18.     }
  19.  
  20.     class Program
  21.     {
  22.         static void Main(string[] args)
  23.         {
  24.  
  25.  
  26.             int n = int.Parse(Console.ReadLine());
  27.             var dragonsList = new List<Dragons>();
  28.  
  29.  
  30.             for (int i = 0; i < n; i++)
  31.             {
  32.  
  33.                 var dragonAttr = Console.ReadLine().Split(' ');
  34.                 var type = dragonAttr[0];
  35.                 var drag = new Dragons();
  36.                 string name = dragonAttr[1];
  37.                 decimal damage = 45;
  38.                 decimal hp = 250;
  39.                 decimal armor = 10;
  40.                 if (dragonAttr[2] != "null")
  41.                 {
  42.                     damage = decimal.Parse(dragonAttr[2]);
  43.                 }
  44.                 if (dragonAttr[3] != "null")
  45.                 {
  46.                     hp = decimal.Parse(dragonAttr[3]);
  47.                 }
  48.                 if (dragonAttr[4] != "null")
  49.                 {
  50.                     armor = decimal.Parse(dragonAttr[4]);
  51.                 }
  52.  
  53.                 var currentDragon = ReadDragons(type, name, damage, hp, armor);
  54.  
  55.                 if (dragonsList.Any(d => d.DragonType == currentDragon.DragonType && d.Name == currentDragon.Name))
  56.                 {
  57.                     dragonsList.Remove(dragonsList.FirstOrDefault(d => d.DragonType == currentDragon.DragonType && d.Name == currentDragon.Name));
  58.                 }
  59.  
  60.                 dragonsList.Add(currentDragon);
  61.  
  62.             }
  63.  
  64.             var grouped = dragonsList.GroupBy(d => d.DragonType);
  65.  
  66.             foreach (var item in grouped)
  67.             {
  68.  
  69.                 Console.WriteLine($"{item.Key}::({item.Average(x => x.Damage):F2}/{item.Average(x => x.Health):F2}/{item.Average(x => x.Armor):F2})");
  70.                 foreach (var drake in item.OrderBy(x => x.Name))
  71.                 {
  72.                     Console.WriteLine($"-{drake.Name} -> damage: {drake.Damage}, health: {drake.Health}, armor: {drake.Armor}");
  73.                 }
  74.             }
  75.         }
  76.  
  77.         static Dragons ReadDragons(string dt, string name, decimal damage, decimal hp, decimal armor)
  78.         {
  79.  
  80.             return new Dragons
  81.             {
  82.                 DragonType = dt,
  83.                 Name = name,
  84.                 Damage = damage,
  85.                 Health = hp,
  86.                 Armor = armor
  87.             };
  88.         }
  89.  
  90.     }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement