Advertisement
butoff

SpeedRacing

Feb 15th, 2018
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.04 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. class Program
  5. {
  6.     static void Main()
  7.     {
  8.         List<Car> cars = new List<Car>();
  9.         int n = int.Parse(Console.ReadLine());
  10.  
  11.         for (int i = 0; i < n; i++)
  12.         {
  13.             string[] carTokens = Console.ReadLine().Split();
  14.             string carModel = carTokens[0];
  15.             decimal fuelQuantity = decimal.Parse(carTokens[1]);
  16.             decimal consumptionPerKm = decimal.Parse(carTokens[2]);
  17.  
  18.             Car car = new Car(carModel, fuelQuantity, consumptionPerKm );            
  19.             cars.Add(car);
  20.         }
  21.         string input = Console.ReadLine();
  22.         while (input != "End")
  23.         {
  24.             string[] inputTokens = input.Split();
  25.             string carModel = inputTokens[1];
  26.             decimal desiredDistance = decimal.Parse(inputTokens[2]);
  27.             Car currentCar = cars.Find(c => c.Model == carModel);
  28.  
  29.             currentCar.Travel(desiredDistance);
  30.  
  31.             input = Console.ReadLine();
  32.         }
  33.  
  34.         foreach (Car car in cars)
  35.         {
  36.             Console.WriteLine(car);
  37.         }
  38.     }
  39. }
  40.  
  41. public class Car
  42. {  
  43.     public Car(string carModel, decimal fuelQuantity, decimal consumptionPerKm)
  44.     {
  45.         this.Model = carModel;
  46.         this.FuelAmount = fuelQuantity;
  47.         this.FuelConsumptionPerKm = consumptionPerKm;
  48.     }
  49.  
  50.     public string Model { get; set; }
  51.     public decimal FuelAmount { get; set; }
  52.     public decimal FuelConsumptionPerKm { get; set; }
  53.     public decimal DistanceTraveled { get; set; }
  54.  
  55.     public void Travel(decimal distance)
  56.     {
  57.         if (this.FuelConsumptionPerKm * distance <= this.FuelAmount)
  58.         {
  59.             this.FuelAmount -= FuelConsumptionPerKm * distance;
  60.             this.DistanceTraveled += distance;
  61.         }
  62.         else
  63.         {
  64.             Console.WriteLine("Insufficient fuel for the drive");
  65.         }
  66.     }
  67.  
  68.     public override string ToString()
  69.     {
  70.         return $"{this.Model} {this.FuelAmount:f2} {this.DistanceTraveled}";
  71.     }
  72.  
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement