mellowdeep

speed racing

Jun 24th, 2016
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.08 KB | None | 0 0
  1. package definingClassesHomework.pr05SpeedRacing;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.InputStreamReader;
  5. import java.util.LinkedHashMap;
  6. import java.util.Map;
  7.  
  8. class Car {
  9.  
  10.     String model;
  11.     double fuelAmount;
  12.     double fuelPerKm;
  13.     double distanceTravaled;
  14.  
  15.     public Car(String model, double fuelAmount, double fuelPerKm) {
  16.         this.model = model;
  17.         this.fuelAmount = fuelAmount;
  18.         this.fuelPerKm = fuelPerKm;
  19.         this.distanceTravaled = 0;
  20.     }
  21.  
  22.     @Override
  23.     public String toString() {
  24.         return model;
  25.     }
  26.  
  27. }
  28.  
  29. public class Pr05SpeedRacing {
  30.  
  31.     public static void main(String[] args) {
  32.  
  33.         try (BufferedReader reader = new BufferedReader(new InputStreamReader(
  34.                 System.in));) {
  35.             Map<String, Car> carList = new LinkedHashMap<>();
  36.             int numberOfLines = Integer.parseInt(reader.readLine());
  37.             String[] inpuLine = null;
  38.             for (int i = 0; i < numberOfLines; i++) {
  39.                 inpuLine = reader.readLine().split("\\s+");
  40.                 String carModel = inpuLine[0];
  41.                 double fuelAmount = Double.parseDouble(inpuLine[1]);
  42.                 double fuelPerKm = Double.parseDouble(inpuLine[2]);
  43.  
  44.                 Car car = new Car(carModel, fuelAmount, fuelPerKm);
  45.                 carList.put(carModel, car);
  46.  
  47.             }
  48.             inpuLine = reader.readLine().split("\\s+");
  49.             while (!inpuLine[0].equals("End")) {
  50.                 String currCar = inpuLine[1];
  51.                 double distanceToTravel = Double.parseDouble(inpuLine[2]);
  52.                 double currCarFuelPerKm = carList.get(currCar).fuelPerKm;
  53.                 double currCarFuelAmount = carList.get(currCar).fuelAmount;
  54.                 double fuelToSpent = distanceToTravel * currCarFuelPerKm;
  55.                 if (fuelToSpent > currCarFuelAmount) {
  56.                     System.out.println("Insufficient fuel for the drive");
  57.                 } else {
  58.                     carList.get(currCar).distanceTravaled += distanceToTravel;
  59.                     carList.get(currCar).fuelAmount -= fuelToSpent;
  60.                 }
  61.                 inpuLine = reader.readLine().split("\\s+");
  62.             }
  63.             for (String car : carList.keySet()) {
  64.                 System.out.printf("%s %.2f %d\n", car,
  65.                         carList.get(car).fuelAmount,
  66.                         (int) carList.get(car).distanceTravaled);
  67.  
  68.             }
  69.  
  70.         } catch (Exception e) {
  71.             e.printStackTrace();
  72.         }
  73.  
  74.     }
  75.  
  76. }
Advertisement
Add Comment
Please, Sign In to add comment