Advertisement
nikolayneykov

Untitled

Mar 30th, 2019
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(params) {
  2.     let finalList = {}
  3.     let finalSubmissions = new Map()
  4.     for (let param of params) {
  5.         let counter = 1
  6.         if (param === "exam finished") {
  7.             break;
  8.         }
  9.         let [name, submissions, points] = param.split("-")
  10.         points = +points;
  11.         if (submissions === 'banned') {
  12.             if (finalList.hasOwnProperty(name)) {
  13.                 delete finalList[name];
  14.             }
  15.         } else {
  16.             if (!finalList.hasOwnProperty(name) || finalList[name] < points) {
  17.                 finalList[name] = points
  18.             }
  19.  
  20.             if (finalSubmissions.has(submissions)) {
  21.                 let existingCount = finalSubmissions.get(submissions)
  22.                 counter += existingCount
  23.             }
  24.             finalSubmissions.set(submissions, counter)
  25.         }
  26.  
  27.     }
  28.     console.log('Results:')
  29.     let sortedList = Object.entries(finalList).sort(function (a, b) {
  30.         let result = b[1] - a[1];
  31.  
  32.         if (result === 0) {
  33.             result = a[0].localeCompare(b[0]);
  34.         }
  35.  
  36.         return result;
  37.     }).forEach(line => console.log(`${line[0]} | ${line[1]}`))
  38.     console.log('Submissions:')
  39.     let sortedSubmisions = [...finalSubmissions].sort((a, b) => {
  40.         let result = b[1] - a[1];
  41.  
  42.         if (result === 0) {
  43.             result = a[0].localeCompare(b[0]);
  44.         }
  45.  
  46.         return result;
  47.     }).forEach(line => console.log(`${line[0]} - ${line[1]}`))
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement