Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.lang.reflect.Array;
- import java.util.*;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- public class retake4 {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- HashMap<String, List<Integer>> cars = new HashMap<>();
- int num = Integer.parseInt(scanner.nextLine());
- String lines = scanner.nextLine();
- for (int i = 0; i < num; ++i) {
- String tokens[] = lines.split("\\|");
- String name = tokens[0];
- int distance = Integer.parseInt(tokens[1]);
- int fuel = Integer.parseInt(tokens[2]);
- cars.put(name, new ArrayList<>());
- cars.get(name).add(0, distance);
- cars.get(name).add(1, fuel);
- lines = scanner.nextLine();
- }
- while (!"Stop".equals(lines)) {
- String[] tokens1 = lines.split(" : ");
- String command = tokens1[0];
- String name = tokens1[1];
- switch (command) {
- case "Drive":
- int distance = Integer.parseInt(tokens1[2]);
- int fuel = Integer.parseInt(tokens1[3]);
- if (cars.get(name).get(1) < fuel) {
- System.out.println("Not enough fuel to make that ride");
- } else {
- int oldDistance = cars.get(name).get(0);
- int oldFuel = cars.get(name).get(1);
- cars.get(name).set(0, oldDistance + distance);
- cars.get(name).set(1, oldFuel - fuel);
- System.out.printf("%s driven for %d kilometers. %d liters of fuel consumed.%n", name, distance, fuel);
- }
- if (cars.get(name).get(0) >= 100000) {
- cars.remove(name);
- System.out.printf("Time to sell the %s!%n", name);
- }
- break;
- case "Refuel":
- int fuel1 = Integer.parseInt(tokens1[2]);
- int oldFuel1 = cars.get(name).get(1);
- if (fuel1 + oldFuel1 > 75) {
- int needFuel = 75 - oldFuel1;
- cars.get(name).set(1, oldFuel1 + needFuel);
- System.out.printf("%s refueled with %d liters%n", name, needFuel);
- } else {
- cars.get(name).set(1, oldFuel1 + fuel1);
- System.out.printf("%s refueled with %d liters", name, fuel1);
- }
- break;
- case "Revert":
- int revertedKM = Integer.parseInt(tokens1[2]);
- int distance1 = cars.get(name).get(0);
- cars.get(name).set(0, distance1 - revertedKM);
- if (distance1 - revertedKM < 10000) {
- cars.get(name).set(0,distance1 = 10000);
- continue;
- } else {
- System.out.println();
- System.out.printf("%s mileage decreased by %s kilometers", name, revertedKM);
- }
- }
- lines = scanner.nextLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement