Exemplo n.º 1
0
        static void Main(string[] args)
        {
            var cars = new List<Car>();

            int inputCount = int.Parse(Console.ReadLine());
            for (int i = 0; i < inputCount; i++)
            {
                var parameters = Console.ReadLine().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

                var model = parameters[0];
                var engineSpeed = int.Parse(parameters[1]);
                var enginePower = int.Parse(parameters[2]);
                var cargoWeight = int.Parse(parameters[3]);
                var cargoType = parameters[4];

                var engine = new Engine(engineSpeed, enginePower);
                var cargo = new Cargo(cargoWeight, cargoType);
                var car = new Car(model, engine, cargo, new List<Tire>());

                for (int j = 5; j < 12; j += 2)
                {
                    var tirePressure = float.Parse(parameters[j]);
                    var tireAge = int.Parse(parameters[j + 1]);
                    var tire = new Tire(tireAge, tirePressure);
                    car.Tires.Add(tire);
                }

                cars.Add(car);
            }

            var outputFilter = Console.ReadLine();
            var output = new List<Car>();
            if (outputFilter == "fragile")
            {
                output =
                    cars.Where(c => c.Cargo.Type.Equals(outputFilter))
                        .Where(car => car.Tires.Any(t => t.Pressure < 1))
                        .ToList();
            }
            else if (outputFilter == "flamable")
            {
                output =
                    cars.Where(c => c.Cargo.Type.Equals(outputFilter))
                        .Where(car => car.Engine.Power > 250)
                        .ToList();
            }

            foreach (Car car in output)
            {
                Console.WriteLine(car.Model);
            }
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            List <Car> cars = new List <Car>();
            int        n    = int.Parse(Console.ReadLine());

            for (int i = 0; i < n; i++)
            {
                string[] input       = Console.ReadLine().Split();
                string   model       = input[0];
                int      engineSpeed = int.Parse(input[1]);
                int      enginePower = int.Parse(input[2]);
                int      cargoWeight = int.Parse(input[3]);
                string   cargoType   = input[4];
                // double tire1Pressure = double.Parse(input[5]);
                // int tire1Age = int.Parse(input[6]);
                // double tire2Pressure = double.Parse(input[7]);
                // int tire2Age = int.Parse(input[8]);
                // double tire3Pressure = double.Parse(input[9]);
                // int tire3Age = int.Parse(input[10]);
                // double tire4Pressure = double.Parse(input[11]);
                // int tire4Age = int.Parse(input[12]);

                Engine engine = new Engine {
                    Speed = engineSpeed, Power = enginePower
                };
                Cargo cargo = new Cargo {
                    Weight = cargoWeight, Type = cargoType
                };
                List <Tire> tires = new List <Tire>();
                for (int j = 5; j < input.Length; j += 2)
                {
                    double pressure = double.Parse(input[j]);
                    int    age      = int.Parse(input[j + 1]);
                    tires.Add(new Tire {
                        Pressure = pressure, Age = age
                    });
                }
                Car car = new Car(model, engine, cargo, tires);
                cars.Add(car);
            }
            string command = Console.ReadLine();

            if (command.ToLower() == "fragile")
            {
                foreach (var car in cars.Where(x => x.Cargo.Type == "fragile"))
                {
                    bool IsTireLessThanOne = false;
                    foreach (var tire in car.Tires)
                    {
                        if (tire.Pressure < 1)
                        {
                            IsTireLessThanOne = true;
                            break;
                        }
                    }
                    if (IsTireLessThanOne)
                    {
                        Console.WriteLine(car.Model);
                    }
                }
            }
            else if (command.ToLower() == "flamable")
            {
                foreach (var car in cars.Where(x => x.Cargo.Type == "flamable").Where(x => x.Engine.Power > 250))
                {
                    Console.WriteLine(car.Model);
                }
            }
        }