Advertisement
Guest User

Untitled

a guest
Oct 11th, 2018
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(array)
  2. {
  3.     let teams=new Map();
  4.     for(let input of array)
  5.     {
  6.         let inputArray=input.split(" -> ");
  7.         let teamName=inputArray[0];
  8.         let pilotName=inputArray[1];
  9.         let pilotPoints=parseFloat(inputArray[2]);
  10.         if(!teams.has(teamName))
  11.         {
  12.             teams.set(teamName,new Map());
  13.         }
  14.         if((!teams.get(teamName).has(pilotName)))
  15.         {
  16.             teams.get(teamName).set(pilotName,0);
  17.         }
  18.         teams.get(teamName).set(pilotName,teams.get(teamName).get(pilotName)+pilotPoints);
  19.     }
  20.     teams=Array.from(teams);
  21.     teams=teams.map(a=>[a[0],Array.from(a[1])]);
  22.     // teams=teams.map(a=>a.map(b=>[b[0],Array.from(b[1])]));
  23.     teams.sort(sortTeams);
  24.     teams=teams.map(a=>a.sort(sortPilots));
  25.     for(let i=0;i<Math.min(3,teams.length);i++)
  26.     {
  27.         console.log(teams[i][0]+": "+getTeamTotalPoints(teams[i]));
  28.         for(let player of teams[i][1])
  29.         {
  30.             console.log("-- "+player[0]+" -> "+player[1]);
  31.         }
  32.     }
  33.     function sortTeams(team1,team2)
  34.     {
  35.         if(getTeamTotalPoints(team1)>getTeamTotalPoints(team2))
  36.         {
  37.             return -1;
  38.         }
  39.         if(getTeamTotalPoints(team1)<getTeamTotalPoints(team2))
  40.         {
  41.             return 1;
  42.         }
  43.         return 0;
  44.     }
  45.     function sortPilots(pilot1,pilot2)
  46.     {
  47.         if(pilot1[1]>pilot2[1])
  48.         {
  49.             return -1;
  50.         }
  51.         if(pilot1[1]<pilot2[1])
  52.         {
  53.             return -1;
  54.         }
  55.         return 0;
  56.     }
  57.     function getTeamTotalPoints(team)
  58.     {
  59.         let sum=0;
  60.         let players=team[1].map(a=>a[1]);
  61.         for(let i=0;i<players.length;i++)
  62.         {
  63.             sum+=players[i];
  64.         }
  65.         return sum;
  66.     }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement