Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.LinkedHashMap;
- import java.util.Scanner;
- import java.util.TreeMap;
- public class NeedForSpeed {
- public static void main(String[]args){
- Scanner sc=new Scanner(System.in);
- int cars=Integer.parseInt(sc.nextLine());
- TreeMap<String,Integer>parking=new TreeMap<>();
- TreeMap<String,Integer>roadTrip=new TreeMap<>();
- for(int i=1;i<=cars;i++){
- String []carPark=sc.nextLine().split("\\|");
- String car=carPark[0];
- int mileage=Integer.parseInt(carPark[1]);
- int fuel=Integer.parseInt(carPark[2]);
- parking.put(car,mileage);
- roadTrip.put(car,fuel);
- }
- String commands=sc.nextLine();
- while (!commands.equals("Stop")){
- String[]todo=commands.split(" : ");
- String cases=todo[0];
- switch (cases){
- case"Drive":
- String carTo=todo[1];
- int distance=Integer.parseInt(todo[2]);
- int fuelF=Integer.parseInt(todo[3]);
- if(fuelF>=roadTrip.get(carTo)){
- System.out.print("Not enough fuel to make that ride");
- System.out.println();
- }else{
- int currentM=parking.get(carTo);
- parking.put(carTo,(currentM+distance));
- int currentF=roadTrip.get(carTo);
- roadTrip.put(carTo,(currentF-fuelF));
- System.out.printf("%s driven for %d kilometers. %d liters of fuel consumed."
- ,carTo,distance,fuelF);
- System.out.println();
- if((currentM+distance)>=100000){
- parking.remove(carTo);
- roadTrip.remove(carTo);
- System.out.printf("Time to sell the %s!",carTo);
- System.out.println();
- }
- }
- break;
- case"Refuel":
- String carRef=todo[1];
- int fuelcar=Integer.parseInt(todo[2]);
- int currentFFF=roadTrip.get(carRef);
- if((currentFFF+fuelcar)>75){
- roadTrip.put(carRef,75);
- System.out.printf
- ("%s refueled with %d liters",carRef,(75-currentFFF));
- System.out.println();
- }else{
- roadTrip.put(carRef,(fuelcar+currentFFF));
- System.out.printf
- ("%s refueled with %d liters",carRef,(fuelcar));
- System.out.println();
- }
- break;
- case"Revert":
- String carRevert=todo[1];
- int kms=Integer.parseInt(todo[2]);
- int currentKMS=roadTrip.get(carRevert);
- if((currentKMS-kms)<10000){
- roadTrip.put(carRevert,10000);
- }else{
- roadTrip.put(carRevert,(currentKMS-kms));
- System.out.printf("%s mileage decreased by %d kilometers",carRevert,kms);
- System.out.println();
- }
- break;
- }
- commands=sc.nextLine();
- }
- parking
- .entrySet()
- .stream()
- .sorted((n1, n2) -> n2.getValue().compareTo(n1.getValue()))
- //.sorted((a1,a2)->a2.getKey().compareTo(a1.getKey()))
- .forEach(n->{
- String name=n.getKey();
- int name4=n.getValue();
- int name5=roadTrip.get((name));
- System.out.printf
- ("%s -> Mileage: %d kms, Fuel in the tank: %d lt.",name,name4,name5);
- System.out.println();
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement