Example #1
0
        public List <Car> Build(int counter)
        {
            List <Car> cars = new List <Car>();

            for (int i = 0; i < counter; i++)
            {
                string[] inputArgs = Console.ReadLine().Split().ToArray();

                string carModel    = inputArgs[0];
                int    engineSpeed = int.Parse(inputArgs[1]);
                int    enginePower = int.Parse(inputArgs[2]);
                int    cargoWeight = int.Parse(inputArgs[3]);
                string type        = inputArgs[4];

                Tire[] tires        = new Tire[4];
                int    tiresCounter = 0;

                for (int tireIndex = 5; tireIndex < inputArgs.Length; tireIndex += 2)
                {
                    double currentTirePressure = double.Parse(inputArgs[tireIndex]);
                    int    currentTireAge      = int.Parse(inputArgs[tireIndex + 1]);

                    Tire tire = new Tire(currentTirePressure, currentTireAge);
                    tires[tiresCounter] = tire;

                    tiresCounter++;
                }

                Engine engine = new Engine(engineSpeed, enginePower);
                Cargo  cargo  = new Cargo(cargoWeight, type);
                Car    car    = new Car(carModel, engine, cargo, tires);

                cars.Add(car);
            }

            return(cars);
        }
Example #2
0
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            Dictionary <string, Car> allCars = new Dictionary <string, Car>();

            for (int i = 0; i < n; i++)
            {
                var input =
                    Console.ReadLine()
                    .Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
                    .ToArray();
                Car car = new Car();

                List <Tire> tires = new List <Tire>();
                var         model = input[0];

                var enginePower = int.Parse(input[2]);
                var engineSpeed = int.Parse(input[1]);

                var cargoWeight = int.Parse(input[3]);
                var cargoType   = input[4];

                var  firstP = double.Parse(input[5]);
                var  firstA = int.Parse(input[6]);
                Tire firstT = new Tire(firstP, firstA);

                var  secondP = double.Parse(input[7]);
                var  secondA = int.Parse(input[8]);
                Tire secondT = new Tire(secondP, secondA);

                var  thirdP = double.Parse(input[9]);
                var  thirdA = int.Parse(input[10]);
                Tire thirdT = new Tire(thirdP, thirdA);

                var  fourthP = double.Parse(input[11]);
                var  fourthA = int.Parse(input[12]);
                Tire fourthT = new Tire(fourthP, fourthA);

                tires.Add(firstT);
                tires.Add(secondT);
                tires.Add(thirdT);
                tires.Add(fourthT);

                car.AddCar(
                    model,
                    new Engine(engineSpeed, enginePower),
                    new Cargo(cargoWeight, cargoType),
                    tires);
                allCars[model] = car;
            }

            string command = Console.ReadLine();


            if (command == "fragile")
            {
                allCars
                .Where(x => x.Value.Tire.Any(p => p.Pressure < 1) &&
                       x.Value.Cargo.Type == "fragile")
                .Select(x => x.Key)
                .ToList()
                .ForEach(x => Console.WriteLine(x));
            }
            else if (command == "flamable")
            {
                allCars
                .Where(x => x.Value.Engine.EnginePower > 250 &&
                       x.Value.Cargo.Type == "flamable")
                .Select(x => x.Key)
                .ToList()
                .ForEach(x => Console.WriteLine(x));
            }
        }