nikolayneykov

Untitled

Mar 3rd, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(batches) {
  2.     batches.pop(); //махаме последния елемент
  3.     let bestBatch = [Number.MIN_SAFE_INTEGER];  //създваме масив за най-добрата партида с 1 елемент (най-ниското отрицателно число)
  4.  
  5.     for (let batch of batches) {    //обхождаме партидите
  6.         let currentBatch = batch.split('#').map(Number);    //сплитваме настоящата партида по # (става на масив) и парсваме към число
  7.         let foundBetterBatch = false; //булева променлива за това дали сме намерили по-добра партида
  8.  
  9.         if (sum(bestBatch) < sum(currentBatch)) {   //проверка по първи критерий (ако сумата на най-добрата партида е по малка от сумата на настоящата)
  10.             foundBetterBatch = true;                
  11.         } else if (sum(bestBatch) === sum(currentBatch)) {    //при равни суми
  12.             if (average(bestBatch) < average(currentBatch)) { //втори критерий сравняваме средноаритметичните суми
  13.                 foundBetterBatch = true;
  14.             } else if (average(bestBatch) === average(currentBatch) &&  //при равни средноаритметични суми
  15.                 bestBatch.length > currentBatch.length) {               //сравняваме по трети критерий (дължина на партидите)
  16.                 foundBetterBatch = true;
  17.             }
  18.         }
  19.  
  20.         if (foundBetterBatch) {                 //ако е намерена по-добра партида
  21.             bestBatch = currentBatch.slice();   //най-добрата ни партида става настоящата
  22.         }
  23.     }
  24.  
  25.     console.log(`Best Batch quality: ${sum(bestBatch)}\n${bestBatch.join(' ')}`); //принтираме резултата
  26.  
  27.  
  28.     function sum(arr) {
  29.         return arr.reduce((a, b) => a + b, 0); //помощна функция връща сумата от числата на масив
  30.     }
  31.  
  32.     function average(arr) {
  33.         return sum(arr) / arr.length; //помощна функция връща средноаритметичната сума на масив
  34.     }
  35. }
Add Comment
Please, Sign In to add comment