Advertisement
Guest User

Untitled

a guest
Apr 10th, 2020
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.27 KB | None | 0 0
  1. import java.lang.reflect.Array;
  2. import java.util.*;
  3. import java.util.regex.Matcher;
  4. import java.util.regex.Pattern;
  5.  
  6. public class retake4 {
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);
  9.         HashMap<String, List<Integer>> cars = new HashMap<>();
  10.         int num = Integer.parseInt(scanner.nextLine());
  11.         String lines = scanner.nextLine();
  12.         for (int i = 0; i < num; ++i) {
  13.             String tokens[] = lines.split("\\|");
  14.             String name = tokens[0];
  15.             int distance = Integer.parseInt(tokens[1]);
  16.             int fuel = Integer.parseInt(tokens[2]);
  17.             cars.put(name, new ArrayList<>());
  18.             cars.get(name).add(0, distance);
  19.             cars.get(name).add(1, fuel);
  20.             lines = scanner.nextLine();
  21.  
  22.         }
  23.  
  24.         while (!"Stop".equals(lines)) {
  25.             String[] tokens1 = lines.split(" : ");
  26.             String command = tokens1[0];
  27.             String name = tokens1[1];
  28.             switch (command) {
  29.                 case "Drive":
  30.                     int distance = Integer.parseInt(tokens1[2]);
  31.                     int fuel = Integer.parseInt(tokens1[3]);
  32.                     if (cars.get(name).get(1) < fuel) {
  33.                         System.out.println("Not enough fuel to make that ride");
  34.                     } else {
  35.                         int oldDistance = cars.get(name).get(0);
  36.                         int oldFuel = cars.get(name).get(1);
  37.                         cars.get(name).set(0, oldDistance + distance);
  38.                         cars.get(name).set(1, oldFuel - fuel);
  39.                         System.out.printf("%s driven for %d kilometers. %d liters of fuel consumed.%n", name, distance, fuel);
  40.                     }
  41.                     if (cars.get(name).get(0) >= 100000) {
  42.                         cars.remove(name);
  43.                         System.out.printf("Time to sell the %s!%n", name);
  44.                     }
  45.                     break;
  46.                 case "Refuel":
  47.                     int fuel1 = Integer.parseInt(tokens1[2]);
  48.                     int oldFuel1 = cars.get(name).get(1);
  49.                     if (fuel1 + oldFuel1 > 75) {
  50.                         int needFuel = 75 - oldFuel1;
  51.                         cars.get(name).set(1, oldFuel1 + needFuel);
  52.                         System.out.printf("%s refueled with %d liters%n", name, needFuel);
  53.                     } else {
  54.                         cars.get(name).set(1, oldFuel1 + fuel1);
  55.                         System.out.printf("%s refueled with %d liters", name, fuel1);
  56.                     }
  57.                     break;
  58.                 case "Revert":
  59.                     int revertedKM = Integer.parseInt(tokens1[2]);
  60.                     int distance1 = cars.get(name).get(0);
  61.                     cars.get(name).set(0, distance1 - revertedKM);
  62.                     if (distance1 - revertedKM < 10000) {
  63.                         cars.get(name).set(0,distance1 = 10000);
  64.                         continue;
  65.                     } else {
  66.                         System.out.println();
  67.                         System.out.printf("%s mileage decreased by %s kilometers", name, revertedKM);
  68.  
  69.                     }
  70.             }
  71.                     lines = scanner.nextLine();
  72.  
  73.         }
  74.     }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement