Advertisement
Ligh7_of_H3av3n

03. Need for Speed III

Mar 20th, 2024
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.41 KB | None | 0 0
  1. package Lekcii;
  2.  
  3.  
  4. import java.util.*;
  5.  
  6. public class NeedForSpeedIII {
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);
  9.  
  10.         Map<String, List<Integer>> carsMap = new LinkedHashMap<>();
  11.  
  12.         int countCars = Integer.parseInt(scanner.nextLine());
  13.         for (int car = 1; car <= countCars; car++) {
  14.             String [] data = scanner.nextLine().split("\\|");
  15.  
  16.             String carModel = data[0];
  17.             int mileage = Integer.parseInt(data[1]);
  18.             int fuel = Integer.parseInt(data[2]);
  19.  
  20.             carsMap.putIfAbsent(carModel, new ArrayList<>());
  21.             carsMap.get(carModel).add(0, mileage);
  22.             carsMap.get(carModel).add(1, fuel);
  23.         }
  24.  
  25.  
  26.         String input = scanner.nextLine();
  27.  
  28.         while (!input.equals("Stop")) {
  29.             if (input.contains("Drive")) {
  30.  
  31.                 String car = input.split(" : ")[1];
  32.                 int distance = Integer.parseInt(input.split(" : ")[2]);
  33.                 int consumedFuel = Integer.parseInt(input.split(" : ")[3]);
  34.  
  35.                 int currentFuel = carsMap.get(car).get(1);
  36.                 int currentKm = carsMap.get(car).get(0);
  37.  
  38.                 if (currentFuel >= consumedFuel) {
  39.  
  40.                     carsMap.get(car).set(1, currentFuel - consumedFuel);
  41.                     carsMap.get(car).set(0, currentKm + distance);
  42.                     System.out.printf("%s driven for %d kilometers. %d liters of fuel consumed.%n", car, distance, consumedFuel);
  43.                 } else {
  44.                     System.out.println("Not enough fuel to make that ride");
  45.                 }
  46.  
  47.                 if (carsMap.get(car).get(0) >= 100000) {
  48.                     System.out.println("Time to sell the " + car + "!");
  49.                     carsMap.remove(car);
  50.                 }
  51.  
  52.             } else if (input.contains("Refuel")) {
  53.                 String carToRefill = input.split(" : ")[1];
  54.                 int fuelToRefill = Integer.parseInt(input.split(" : ")[2]);
  55.  
  56.                 int currentFuel = carsMap.get(carToRefill).get(1);
  57.                 if (currentFuel + fuelToRefill > 75) {
  58.  
  59.                     carsMap.get(carToRefill).set(1, 75);
  60.                     System.out.printf("%s refueled with %d liters%n", carToRefill, 75 - currentFuel);
  61.                 } else {
  62.                     carsMap.get(carToRefill).set(1, currentFuel + fuelToRefill);
  63.                     System.out.printf("%s refueled with %d liters%n", carToRefill, fuelToRefill);
  64.                 }
  65.             } else if (input.contains("Revert")) {
  66.                 String carToRevert = input.split(" : ")[1];
  67.                 int kmRevert = Integer.parseInt(input.split(" : ")[2]);
  68.                 int currentKm = carsMap.get(carToRevert).get(0);
  69.  
  70.                 int kmAfterRevert = currentKm - kmRevert;
  71.  
  72.                 if (kmAfterRevert < 10000) {
  73.                     kmAfterRevert = 10000;
  74.                 } else {
  75.                     System.out.printf("%s mileage decreased by %d kilometers%n", carToRevert, kmRevert);
  76.                 }
  77.  
  78.                 carsMap.get(carToRevert).set(0, kmAfterRevert);
  79.  
  80.  
  81.             }
  82.             input = scanner.nextLine();
  83.         }
  84.  
  85.         carsMap.entrySet().forEach(entry -> {
  86.             System.out.printf("%s -> Mileage: %d kms, Fuel in the tank: %d lt.%n", entry.getKey(), entry.getValue().get(0), entry.getValue().get(1));
  87.         });
  88.     }
  89. }
  90.  
  91.  
  92.  
  93.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement