Advertisement
Guest User

03. Need for Speed III

a guest
Apr 10th, 2020
268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(input) {
  2.     let carsCount = +input.shift()
  3.     let carsObj = {}
  4.     for (let i = 0; i < carsCount; i++) {
  5.         let car = input.shift().split('|')
  6.         let [model, mileage, fuel] = car
  7.         carsObj[model] = {
  8.             mileage: +mileage,
  9.             fuel: +fuel
  10.         }
  11.     }
  12.     let line = input.shift()
  13.     while (line !== 'Stop') {
  14.         line = line.split(' : ')
  15.         let [cmd, car, km, fuel] = line
  16.         if (cmd == 'Drive') {
  17.             if (carsObj[car].fuel < fuel) {
  18.                 console.log("Not enough fuel to make that ride");
  19.             }
  20.             else {
  21.                 carsObj[car].mileage += +km;
  22.                 carsObj[car].fuel -= +fuel;
  23.                 console.log(`${car} driven for ${km} kilometers. ${fuel} liters of fuel consumed.`);
  24.             }
  25.             if (carsObj[car].mileage >= 100000) {
  26.                 console.log(`Time to sell the ${car}!`);
  27.                 delete carsObj[car];
  28.             }
  29.         }
  30.         else if (cmd == 'Refuel') {
  31.             carsObj[car].fuel += +km;
  32.             let diff = km
  33.             if (carsObj[car].fuel > 75) {
  34.                 diff = 75 - (carsObj[car].fuel-km);
  35.                 carsObj[car].fuel = 75;
  36.  
  37.             }
  38.             console.log(`${car} refueled with ${diff} liters`);
  39.         }
  40.         else if (cmd == 'Revert') {
  41.             carsObj[car].mileage -= +km;
  42.             if (carsObj[car].mileage < 10000) {
  43.                 carsObj[car].mileage = 10000
  44.             }
  45.             else {
  46.                 console.log(`${car} mileage decreased by ${km} kilometers`); //${km} ???
  47.             }
  48.         }
  49.         line = input.shift() //last
  50.     }
  51.     let arr = Object.entries(carsObj)
  52.     arr.sort((a,b)=>b[1].mileage - a[1].mileage || a[0].localeCompare(b[0]))
  53.     arr.forEach(element => {
  54.         console.log(`${element[0]} -> Mileage: ${element[1].mileage} kms, Fuel in the tank: ${element[1].fuel} lt.`);
  55.     });
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement