public Jarvis(Head head, Torso torso, List <Arm> arms, List <Leg> legs) { Head = head; Torso = torso; Arms = arms; Legs = legs; }
static void Main(string[] args) { List <Head> heads = new List <Head>(); List <Torso> torsos = new List <Torso>(); List <Arm> arms = new List <Arm>(); List <Leg> legs = new List <Leg>(); long givenEnergy = long.Parse(Console.ReadLine()); string input = Console.ReadLine(); while (input != "Assemble!") { string[] commands = input .Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); switch (commands[0]) { case "Head": Head current = new Head() { EnergyConsumprion = int.Parse(commands[1]), IQ = int.Parse(commands[2]), SkinMaterial = commands[3] }; heads.Add(current); break; case "Torso": Torso curr = new Torso() { EnergyConsumprion = int.Parse(commands[1]), ProcesirSize = int.Parse(commands[2]), CorpusMaterial = commands[3] }; torsos.Add(curr); break; case "Arm": Arm currArm = new Arm() { EnergyConsumprion = int.Parse(commands[1]), Reach = int.Parse(commands[2]), Fingers = int.Parse(commands[3]) }; arms.Add(currArm); break; case "Leg": Leg currLeg = new Leg() { EnergyConsumprion = int.Parse(commands[1]), Strength = int.Parse(commands[2]), Speed = int.Parse(commands[3]) }; legs.Add(currLeg); break; } input = Console.ReadLine(); } var bestEnergy = int.MaxValue; Head bestHead = new Head(); foreach (var h in heads) { if (h.EnergyConsumprion < bestEnergy) { bestEnergy = h.EnergyConsumprion; bestHead = h; } } Torso bestTorso = new Torso(); bestEnergy = int.MaxValue; foreach (var t in torsos) { if (t.EnergyConsumprion < bestEnergy) { bestEnergy = t.EnergyConsumprion; bestTorso = t; } } var bestArms = arms.OrderBy(x => x.EnergyConsumprion).Take(2).ToList(); var bestLegs = legs.OrderBy(x => x.EnergyConsumprion).Take(2).ToList(); var jar = new Jarvis(bestHead, bestTorso, bestArms, bestLegs); if (!jar.HaveAllParts) { Console.WriteLine("We need more parts!"); } else if (jar.neededEnergy > givenEnergy) { Console.WriteLine("We need more power!"); } else { Console.WriteLine("Jarvis:"); jar.Head.PrintHead(); jar.Torso.PrintTorso(); foreach (var arm in jar.Arms) { arm.PrintArm(); } foreach (var leg in jar.Legs) { leg.PrintLeg(); } } }