Advertisement
SIRAKOV4444

Untitled

Apr 10th, 2020
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.11 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.LinkedHashMap;
  3. import java.util.Scanner;
  4. import java.util.TreeMap;
  5.  
  6. public class NeedForSpeed {
  7. public static void main(String[]args){
  8. Scanner sc=new Scanner(System.in);
  9.  
  10. int cars=Integer.parseInt(sc.nextLine());
  11. TreeMap<String,Integer>parking=new TreeMap<>();
  12. TreeMap<String,Integer>roadTrip=new TreeMap<>();
  13.  
  14. for(int i=1;i<=cars;i++){
  15.  
  16. String []carPark=sc.nextLine().split("\\|");
  17. String car=carPark[0];
  18. int mileage=Integer.parseInt(carPark[1]);
  19. int fuel=Integer.parseInt(carPark[2]);
  20.  
  21. parking.put(car,mileage);
  22. roadTrip.put(car,fuel);
  23. }
  24. String commands=sc.nextLine();
  25. while (!commands.equals("Stop")){
  26. String[]todo=commands.split(" : ");
  27. String cases=todo[0];
  28. switch (cases){
  29. case"Drive":
  30. String carTo=todo[1];
  31. int distance=Integer.parseInt(todo[2]);
  32. int fuelF=Integer.parseInt(todo[3]);
  33. if(fuelF>=roadTrip.get(carTo)){
  34. System.out.print("Not enough fuel to make that ride");
  35. System.out.println();
  36. }else{
  37. int currentM=parking.get(carTo);
  38. parking.put(carTo,(currentM+distance));
  39. int currentF=roadTrip.get(carTo);
  40. roadTrip.put(carTo,(currentF-fuelF));
  41. System.out.printf("%s driven for %d kilometers. %d liters of fuel consumed."
  42. ,carTo,distance,fuelF);
  43. System.out.println();
  44. if((currentM+distance)>=100000){
  45. parking.remove(carTo);
  46. roadTrip.remove(carTo);
  47. System.out.printf("Time to sell the %s!",carTo);
  48. System.out.println();
  49. }
  50. }
  51. break;
  52. case"Refuel":
  53. String carRef=todo[1];
  54. int fuelcar=Integer.parseInt(todo[2]);
  55.  
  56. int currentFFF=roadTrip.get(carRef);
  57. if((currentFFF+fuelcar)>75){
  58. roadTrip.put(carRef,75);
  59. System.out.printf
  60. ("%s refueled with %d liters",carRef,(75-currentFFF));
  61. System.out.println();
  62.  
  63. }else{
  64. roadTrip.put(carRef,(fuelcar+currentFFF));
  65. System.out.printf
  66. ("%s refueled with %d liters",carRef,(fuelcar));
  67. System.out.println();
  68. }
  69. break;
  70. case"Revert":
  71. String carRevert=todo[1];
  72. int kms=Integer.parseInt(todo[2]);
  73. int currentKMS=roadTrip.get(carRevert);
  74. if((currentKMS-kms)<10000){
  75. roadTrip.put(carRevert,10000);
  76. }else{
  77. roadTrip.put(carRevert,(currentKMS-kms));
  78. System.out.printf("%s mileage decreased by %d kilometers",carRevert,kms);
  79. System.out.println();
  80. }
  81. break;
  82. }
  83. commands=sc.nextLine();
  84. }
  85. parking
  86. .entrySet()
  87. .stream()
  88. .sorted((n1, n2) -> n2.getValue().compareTo(n1.getValue()))
  89. //.sorted((a1,a2)->a2.getKey().compareTo(a1.getKey()))
  90. .forEach(n->{
  91. String name=n.getKey();
  92. int name4=n.getValue();
  93. int name5=roadTrip.get((name));
  94. System.out.printf
  95. ("%s -> Mileage: %d kms, Fuel in the tank: %d lt.",name,name4,name5);
  96. System.out.println();
  97.  
  98. });
  99.  
  100. }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement