Advertisement
Guest User

Untitled

a guest
May 6th, 2018
266
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.17 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. int damage = 0;
  20. int health = 0;
  21. int armor = 0;
  22. string type = dragon[0];
  23. string name = dragon[1];
  24. try
  25. {
  26. damage = int.Parse(dragon[2]);
  27. }
  28. catch (Exception)
  29. {
  30. damage = 45;
  31. }
  32. try
  33. {
  34. health = int.Parse(dragon[3]);
  35. }
  36. catch (Exception)
  37. {
  38. health = 250;
  39. }
  40. try
  41. {
  42. armor = int.Parse(dragon[4]);
  43. }
  44. catch (Exception)
  45. {
  46. armor = 10;
  47. }
  48. if (!newdragon.Any(x => x.Name == name && x.Type==type))
  49. {
  50. newdragon.Add(new Dragon(name, type, damage, health, armor));
  51. types.Add(type);
  52. }
  53. else
  54. {
  55. newdragon.Where(x => x.Name == name).Select(x => { x.Damage = damage; return x; }).ToList();
  56. newdragon.Where(x => x.Name == name).Select(x => { x.Health = health; return x; }).ToList();
  57. newdragon.Where(x => x.Name == name).Select(x => { x.Armor = armor; return x; }).ToList();
  58. }
  59.  
  60. }
  61. types = types.Distinct().ToList();
  62. foreach (var type in types)
  63. {
  64. var dragons = newdragon.Where(x => x.Type == type).OrderBy(x => x.Name);
  65. var averageStr = dragons.Average(x => x.Damage);
  66. var averageHealth = dragons.Average(x => x.Health);
  67. var averageArmor = dragons.Average(x => x.Armor);
  68. Console.WriteLine($"{type}::({averageStr:f2}/{averageHealth:f2}/{averageArmor:f2})");
  69.  
  70. foreach (var dragon in dragons)
  71. {
  72. Console.WriteLine($"-{dragon.Name} -> damage: {dragon.Damage}, health: {dragon.Health}, armor: {dragon.Armor}");
  73. }
  74.  
  75. }
  76. }
  77. }
  78. class Dragon
  79. {
  80. public string Type { get; set; }
  81. public string Name { get; set; }
  82. public int Damage { get; set; }
  83. public int Health { get; set; }
  84. public int Armor { get; set; }
  85. public Dragon(string name, string type, int damage, int health, int armor)
  86. {
  87. Type = type;
  88. Name = name;
  89. Damage = damage;
  90. Health = health;
  91. Armor = armor;
  92. }
  93. }
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement