Advertisement
Silviya7

MotorRace

May 15th, 2024
547
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(input){
  2.  
  3.     const n= input.shift();// Number riders
  4.  
  5.     let Allriders={};
  6. for (let i = 0; i < n; i++) {
  7.    
  8.     let firstLinerider=input.shift();
  9.     let rider1=firstLinerider.split('|');
  10.     let name= rider1[0];
  11.     let fuel=Number(rider1[1]);
  12.     let position=Number(rider1[2]);
  13.     Allriders[name]={fuel,position};
  14. }
  15.  
  16. let FirstLine= input.shift();// vseki nred
  17. while(FirstLine != 'Finish'){
  18.     FirstLine= FirstLine.split(' - ');
  19.     typecmd=FirstLine[0];
  20.     const ridername=FirstLine[1];
  21.     let Rider=  Allriders[ridername];                   //Allriders.find(r=> r.name== ridername);
  22. switch (typecmd) {
  23.     case 'StopForFuel':    
  24.     const minfuel=FirstLine[2];
  25.     const Newposition=FirstLine[3];
  26.      if(Rider.fuel < minfuel){
  27.         Rider.position= Newposition;
  28.     console.log(`${ridername} stopped to refuel but lost his position, now he is ${Newposition}.`);
  29.      }
  30.      else{
  31.         console.log(`${ridername} does not need to stop for fuel!`)
  32.      }
  33.         break;
  34.  
  35.     case 'Overtaking':
  36.         //let rider1=ridername;
  37.         //let rider2=Allriders.find(r=> r.name== FirstLine[2]);
  38.         //let firstindex=Allriders.indexOf(rider1);
  39.        // let secondindex= Allriders.indexOf(rider2);
  40.  
  41.         let rider1=FirstLine[1];
  42.         let rider2=FirstLine[2];
  43.  
  44.         let Rider1=  Allriders[rider1];
  45.         let Rider2=  Allriders[rider2];
  46.        
  47.         if(Rider1.position< Rider2.position ){
  48.             let Orider1= Allriders[rider1];
  49.            Allriders[rider1]= Allriders[rider2];
  50.            Allriders[rider2]= Orider1;
  51.  
  52.             console.log(`${rider1} overtook ${rider2}!`);
  53.         }
  54.         break;
  55.     case 'EngineFail':
  56.        let lapsleft=FirstLine[2];
  57.  
  58.        delete Allriders[ridername];
  59.        console.log(`${ridername} is out of the race because of a technical issue, ${lapsleft} laps before the finish.`)
  60.     break;
  61.    }
  62.  
  63.         FirstLine= input.shift();
  64.     }
  65.  
  66.    // let sortedRiders = Object.entries(Allriders);
  67.    // sortedRiders=sortedRiders.sort((a,b) => a[0].localeCompare(b[0]));
  68.  
  69.     for (const rider in Allriders) {
  70.        
  71.         console.log(`${rider}`);
  72.         console.log(`  Final position: ${Allriders[rider].position}`);
  73.  
  74.     }
  75.  
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement