Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve(input){
- const n= input.shift();// Number riders
- let Allriders={};
- for (let i = 0; i < n; i++) {
- let firstLinerider=input.shift();
- let rider1=firstLinerider.split('|');
- let name= rider1[0];
- let fuel=Number(rider1[1]);
- let position=Number(rider1[2]);
- Allriders[name]={fuel,position};
- }
- let FirstLine= input.shift();// vseki nred
- while(FirstLine != 'Finish'){
- FirstLine= FirstLine.split(' - ');
- typecmd=FirstLine[0];
- const ridername=FirstLine[1];
- let Rider= Allriders[ridername]; //Allriders.find(r=> r.name== ridername);
- switch (typecmd) {
- case 'StopForFuel':
- const minfuel=FirstLine[2];
- const Newposition=FirstLine[3];
- if(Rider.fuel < minfuel){
- Rider.position= Newposition;
- console.log(`${ridername} stopped to refuel but lost his position, now he is ${Newposition}.`);
- }
- else{
- console.log(`${ridername} does not need to stop for fuel!`)
- }
- break;
- case 'Overtaking':
- //let rider1=ridername;
- //let rider2=Allriders.find(r=> r.name== FirstLine[2]);
- //let firstindex=Allriders.indexOf(rider1);
- // let secondindex= Allriders.indexOf(rider2);
- let rider1=FirstLine[1];
- let rider2=FirstLine[2];
- let Rider1= Allriders[rider1];
- let Rider2= Allriders[rider2];
- if(Rider1.position< Rider2.position ){
- let Orider1= Allriders[rider1];
- Allriders[rider1]= Allriders[rider2];
- Allriders[rider2]= Orider1;
- console.log(`${rider1} overtook ${rider2}!`);
- }
- break;
- case 'EngineFail':
- let lapsleft=FirstLine[2];
- delete Allriders[ridername];
- console.log(`${ridername} is out of the race because of a technical issue, ${lapsleft} laps before the finish.`)
- break;
- }
- FirstLine= input.shift();
- }
- // let sortedRiders = Object.entries(Allriders);
- // sortedRiders=sortedRiders.sort((a,b) => a[0].localeCompare(b[0]));
- for (const rider in Allriders) {
- console.log(`${rider}`);
- console.log(` Final position: ${Allriders[rider].position}`);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement