Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.59 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 _3.Jarvis
  8. {
  9. class Arm
  10. {
  11. public int Energy { get; set; }
  12. public int ArmReachDistance { get; set; }
  13. public int CountFingers { get; set; }
  14. }
  15.  
  16. class Leg
  17. {
  18. public int Energy { get; set; }
  19. public int Strenght { get; set; }
  20. public int Speed { get; set; }
  21. }
  22.  
  23. class Torso
  24. {
  25. public int Energy { get; set; }
  26. public double ProcessorSize { get; set; }
  27. public string Material { get; set; }
  28. }
  29.  
  30. class Head
  31. {
  32. public int Energy { get; set; }
  33. public int Iq { get; set; }
  34. public string Skin { get; set; }
  35. }
  36.  
  37. class Program
  38. {
  39. static void Main(string[] args)
  40. {
  41. List<Head> heads = new List<Head>();
  42. List<Leg> legs = new List<Leg>();
  43. List<Arm> arms = new List<Arm>();
  44. List<Torso> body = new List<Torso>();
  45. ulong totalPower = ulong.Parse(Console.ReadLine());
  46. var line = Console.ReadLine();
  47.  
  48. while (line != "Assemble!")
  49. {
  50. string[] input = line.Split(' ').ToArray();
  51.  
  52. string part = input[0];
  53.  
  54. switch (part)
  55. {
  56. case "Arm":
  57. if (arms.Count == 0)
  58. {
  59. arms.Add(ReadArm(input));
  60. }
  61. else if (arms.Count == 1)
  62. {
  63. arms.Add(ReadArm(input));
  64. }
  65. else if (ReadArm(input).Energy < arms[0].Energy)
  66. {
  67. arms[0] = ReadArm(input);
  68. }
  69. break;
  70. case "Head":
  71. if (heads.Count == 0)
  72. {
  73. heads.Add(ReadHead(input));
  74. }
  75. else if (ReadHead(input).Energy < heads[0].Energy)
  76. {
  77. heads[0] = ReadHead(input);
  78. }
  79. break;
  80.  
  81. case "Torso":
  82. if (body.Count == 0)
  83. {
  84. body.Add(ReadTorso(input));
  85. }
  86. else
  87. {
  88. if (ReadTorso(input).Energy < body[0].Energy)
  89. {
  90. body[0] = ReadTorso(input);
  91. }
  92. }
  93. break;
  94.  
  95. case "Leg":
  96. if (legs.Count == 0)
  97. {
  98. legs.Add(ReadLeg(input));
  99. }
  100. else if (legs.Count == 1)
  101. {
  102. legs.Add(ReadLeg(input));
  103. }
  104. else
  105. {
  106. if (ReadLeg(input).Energy < legs[0].Energy)
  107. {
  108. legs[0] = ReadLeg(input);
  109. }
  110. }
  111. break;
  112.  
  113. default:
  114. break;
  115. }
  116. line = Console.ReadLine();
  117.  
  118. }
  119.  
  120. if (legs.Count <= 1 || arms.Count <= 1 || heads.Count == 0 || body.Count == 0)
  121. {
  122. Console.WriteLine("We need more parts!");
  123. return;
  124. }
  125.  
  126. ulong neededPower = (ulong)heads[0].Energy + (ulong)body[0].Energy + (ulong)legs[0].Energy +
  127. (ulong)legs[1].Energy + (ulong)arms[0].Energy + (ulong)arms[1].Energy;
  128.  
  129. if (neededPower > totalPower)
  130. {
  131. Console.WriteLine("We need more power!");
  132. return;
  133. }
  134.  
  135. Console.WriteLine("Jarvis:");
  136. PrintHead(heads);
  137. PrintTorso(body);
  138. PrintArm(arms);
  139. PrintLegs(legs);
  140. }
  141.  
  142. private static void PrintLegs(List<Leg> legs)
  143. {
  144. foreach (var item in legs.OrderBy(a => a.Energy))
  145. {
  146. Console.WriteLine($"#Leg:\n###Energy consumption: {item.Energy}\n###Strength: " +
  147. $"{item.Strenght}\n###Speed: {item.Speed}");
  148. }
  149. }
  150.  
  151. private static void PrintArm(List<Arm> arms)
  152. {
  153. foreach (var item in arms.OrderBy(a => a.Energy))
  154. {
  155. Console.WriteLine($"#Arm:\n###Energy consumption: {item.Energy}\n###Reach: " +
  156. $"{item.ArmReachDistance}\n###Fingers: {item.CountFingers}");
  157. }
  158. }
  159.  
  160. private static void PrintTorso(List<Torso> body)
  161. {
  162. Console.WriteLine($"#Torso:\n###Energy consumption: {body[0].Energy}\n###Processor size: " +
  163. $"{body[0].ProcessorSize:f1}\n###Corpus material: {body[0].Material}");
  164. }
  165.  
  166. private static void PrintHead(List<Head> heads)
  167. {
  168. Console.WriteLine($"#Head:\n###Energy consumption: {heads[0].Energy}\n###IQ: {heads[0].Iq}\n###Skin material: {heads[0].Skin}");
  169. }
  170.  
  171. private static Leg ReadLeg(string[] input)
  172. {
  173. Leg leg = new Leg();
  174. leg.Energy = int.Parse(input[1]);
  175. leg.Strenght = int.Parse(input[2]);
  176. leg.Speed = int.Parse(input[3]);
  177.  
  178. return leg;
  179. }
  180.  
  181. private static Torso ReadTorso(string[] input)
  182. {
  183. Torso torso = new Torso();
  184.  
  185. torso.Energy = int.Parse(input[1]);
  186. torso.ProcessorSize = double.Parse(input[2]);
  187. torso.Material = input[3];
  188.  
  189. return torso;
  190. }
  191.  
  192. private static Head ReadHead(string[] input)
  193. {
  194. Head head = new Head();
  195. head.Energy = int.Parse(input[1]);
  196. head.Iq = int.Parse(input[2]);
  197. head.Skin = input[3];
  198.  
  199. return head;
  200. }
  201.  
  202. private static Arm ReadArm(string[] input)
  203. {
  204. Arm arm = new Arm();
  205. arm.Energy = int.Parse(input[1]);
  206. arm.ArmReachDistance = int.Parse(input[2]);
  207. arm.CountFingers = int.Parse(input[3]);
  208.  
  209. return arm;
  210. }
  211. }
  212. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement