Advertisement
Guest User

Untitled

a guest
May 6th, 2018
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.15 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 _11.Dragon_Army
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. int n = int.Parse(Console.ReadLine());
  14. var newdragon = new List<Dragon>();
  15. List<string> types = new List<string>();
  16. for (int i = 0; i < n; i++)
  17. {
  18. string[] dragon = Console.ReadLine().Split(' ').ToArray();
  19. string type = dragon[0];
  20. string name = dragon[1];
  21. int damage = dragon[2] != "null" ? int.Parse(dragon[2]) : 45;
  22. int health = dragon[3] != "null" ? int.Parse(dragon[3]) : 250;
  23. int armor = dragon[4] != "null" ? int.Parse(dragon[4]) : 10;
  24.  
  25. //if (!newdragon.Any(x => x.Name == name && x.Type == type))
  26. //{
  27. // newdragon.Add(new Dragon(name, type, damage, health, armor));
  28. // types.Add(type);
  29. //}
  30. //else
  31. //{
  32. // Dragon oldDragon = newdragon.Where(x => x.Name == name && x.Type == type).First();
  33. // oldDragon.Damage = damage;
  34. // oldDragon.Health = health;
  35. // oldDragon.Armor = armor;
  36. //}
  37.  
  38. //another option - just one pass through the list
  39. Dragon oldDragon = newdragon.Find(x => x.Name == name && x.Type == type);
  40. if (oldDragon == null)
  41. {
  42. newdragon.Add(new Dragon(name, type, damage, health, armor));
  43. types.Add(type);
  44. }
  45. else
  46. {
  47. oldDragon.Damage = damage;
  48. oldDragon.Health = health;
  49. oldDragon.Armor = armor;
  50. }
  51. }
  52. types = types.Distinct().ToList();
  53. foreach (var type in types)
  54. {
  55. var dragons = newdragon.Where(x => x.Type == type).OrderBy(x => x.Name);
  56. var averageStr = dragons.Average(x => x.Damage);
  57. var averageHealth = dragons.Average(x => x.Health);
  58. var averageArmor = dragons.Average(x => x.Armor);
  59. Console.WriteLine($"{type}::({averageStr:f2}/{averageHealth:f2}/{averageArmor:f2})");
  60.  
  61. foreach (var dragon in dragons)
  62. {
  63. Console.WriteLine($"-{dragon.Name} -> damage: {dragon.Damage}, health: {dragon.Health}, armor: {dragon.Armor}");
  64. }
  65.  
  66. }
  67. }
  68. }
  69. class Dragon
  70. {
  71. public string Type { get; set; }
  72. public string Name { get; set; }
  73. public int Damage { get; set; }
  74. public int Health { get; set; }
  75. public int Armor { get; set; }
  76. public Dragon(string name, string type, int damage, int health, int armor)
  77. {
  78. Type = type;
  79. Name = name;
  80. Damage = damage;
  81. Health = health;
  82. Armor = armor;
  83. }
  84. }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement