Example #1
0
        static void Main(string[] args)
        {
            var engines = new Dictionary<string, Engine>();
            var engineCount = int.Parse(Console.ReadLine());
            for (int i = 0; i < engineCount; i++)
            {
                var parameters = Console.ReadLine().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                var engineModel = parameters[0];
                var enginePower = parameters[1];

                string engineDisplacement = "n/a";
                string engineEfficiency = "n/a";
                if (parameters.Length >= 3)
                {
                    int displacement = -1;
                    if (int.TryParse(parameters[2], out displacement))
                    {
                        engineDisplacement = parameters[2];
                    }
                    else
                    {
                        engineEfficiency = parameters[2];
                    }

                    if (parameters.Length == 4)
                    {
                        engineEfficiency = displacement != -1 ? parameters[3] : parameters[2];
                    }
                }
                var engine = new Engine(engineModel, enginePower, engineDisplacement, engineEfficiency);
                engines.Add(engineModel, engine);
            }

            var cars = new List<Car>();
            var carCount = int.Parse(Console.ReadLine());
            for (int i = 0; i < carCount; i++)
            {
                var parameters = Console.ReadLine().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                var carModel = parameters[0];
                var carEngine = engines[parameters[1]];

                string carWeight = "n/a";
                string carColor = "n/a";
                if (parameters.Length >= 3)
                {
                    int weight = -1;
                    if (int.TryParse(parameters[2], out weight))
                    {
                        carWeight = parameters[2];
                    }
                    else
                    {
                        carColor = parameters[2];
                    }

                    if (parameters.Length == 4)
                    {
                        carColor = weight != -1 ? parameters[3] : parameters[2];
                    }
                }

                var car = new Car(carModel, carEngine, carWeight, carColor);
                cars.Add(car);
            }

            foreach (Car car in cars)
            {
                Console.WriteLine(car);
            }
        }
Example #2
0
        static void Main(string[] args)
        {
            List <Car>    cars    = new List <Car>();
            List <Engine> engines = new List <Engine>();

            int count = int.Parse(Console.ReadLine());

            for (int i = 0; i < count; i++)
            {
                string[] dataEngine = Console.ReadLine()
                                      .Split(" ", StringSplitOptions.RemoveEmptyEntries)
                                      .ToArray();

                string engineModel = dataEngine[0];
                int    power       = int.Parse(dataEngine[1]);

                int displacement = 0;
                var efficiency   = "n/a";

                if (dataEngine.Length == 4)
                {
                    displacement = int.Parse(dataEngine[2]);
                    efficiency   = dataEngine[3];
                }
                else if (dataEngine.Length == 3)
                {
                    if (char.IsLetter(char.Parse(dataEngine[2][0].ToString())))
                    {
                        efficiency = dataEngine[2];
                    }
                    else
                    {
                        displacement = int.Parse(dataEngine[2]);
                    }
                }

                Engine engine = new Engine(engineModel, power, displacement, efficiency);
                engines.Add(engine);
            }

            count = int.Parse(Console.ReadLine());

            for (int i = 0; i < count; i++)
            {
                string[] dataCar = Console.ReadLine()
                                   .Split(" ", StringSplitOptions.RemoveEmptyEntries)
                                   .ToArray();

                string CarModel  = dataCar[0];
                string CarEngine = dataCar[1];
                int    weight    = 0;
                var    color     = "n/a";

                if (dataCar.Length == 4)
                {
                    weight = int.Parse(dataCar[2]);
                    color  = dataCar[3];
                }
                else if (dataCar.Length == 3)
                {
                    if (char.IsLetter(char.Parse(dataCar[2][0].ToString())))
                    {
                        color = dataCar[2];
                    }
                    else
                    {
                        weight = int.Parse(dataCar[2]);
                    }
                }
                var engine = engines.Where(x => x.EngineModel == CarEngine).FirstOrDefault();
                Car car    = new Car(CarModel, engine, weight, color);

                cars.Add(car);
            }

            foreach (Car car in cars)
            {
                Console.WriteLine(car.ToString());
            }
        }