Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Linq;
- using System.Collections.Generic;
- namespace Speed_Racing
- {
- public class Program
- {
- static void Main()
- {
- int N = int.Parse(Console.ReadLine());
- var cars = new List<Car>();
- for (int i = 0; i < N; i++)
- {
- string[] carProperties = Console.ReadLine().Split();
- string model = carProperties[0];
- double fuelAmount = double.Parse(carProperties[1]);
- double fuelConsumptionFor1km = double.Parse(carProperties[2]);
- Car car = new Car(model, fuelAmount, fuelConsumptionFor1km);
- cars.Add(car);
- }
- string input = "";
- while ((input = Console.ReadLine()) != "End")
- {
- string[] command = input.Split();
- string carModel = command[1];
- double amountOfKm = double.Parse(command[2]);
- var currentCar = cars.FirstOrDefault(c => c.Model == carModel);
- currentCar.AbleToMoveDistance(amountOfKm);
- }
- foreach (Car car in cars)
- {
- Console.WriteLine($"{car.Model} {car.FuelAmount:F2} {car.TravelledDistance}");
- }
- }
- public class Car
- {
- public Car(string model, double fuelAmount, double fuelConsumptionFor1km, double travelledDistance = 0)
- {
- this.Model = model;
- this.FuelAmount = fuelAmount;
- this.FuelConsumptionPerKilometer = fuelConsumptionFor1km;
- this.TravelledDistance = travelledDistance;
- }
- public string Model { get; set; }
- public double FuelAmount { get; set; }
- public double FuelConsumptionPerKilometer { get; set; }
- public double TravelledDistance { get; set; }
- public void AbleToMoveDistance(double distanceToTravel)
- {
- double fuelNeeded = this.FuelAmount - (this.FuelConsumptionPerKilometer * distanceToTravel);
- if (fuelNeeded < 0)
- {
- Console.WriteLine("Insufficient fuel for the drive");
- }
- else
- {
- double usedFuel = this.FuelConsumptionPerKilometer * distanceToTravel;
- this.FuelAmount -= usedFuel;
- this.TravelledDistance += distanceToTravel;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement