serdarshefketov

LineOperations

Nov 25th, 2021 (edited)
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //
  2. let input = ['4 3',1,2,3,4, '4,1,5,2' ,'110','742'];
  3.  
  4. let print = this.print || console.log;
  5. let gets = this.gets || ((arr, index) => () => arr[index++])(input, 0);
  6. //  
  7.  
  8. let nm = gets().split(' ').map(Number); // index1 = first number N
  9.                             // index2 = second number M
  10.  
  11.  
  12. // program starts
  13.  
  14. let temp = [];
  15. let newArr = [];
  16. for(let i = 0; i < (nm[0]); i++){
  17.     let inSystem = +gets(); // 1 2 3 4
  18.  
  19.     for(let j = inSystem; j < inSystem + nm[1]; j++ ){
  20.         temp.push(j);
  21.  
  22.         if(j+1 >= inSystem + nm[1]){
  23.  
  24.             newArr.push(temp);
  25.             temp=[];
  26.         }  
  27.     }
  28. }
  29.  
  30. let result = 0;
  31. for(let k = 0; k < newArr.length; k++){
  32.    
  33.     if(k % 3 == 0) {
  34.         let min = Math.min(...newArr[k]);
  35.  
  36.         result += min;
  37.  
  38.     } else if (k % 3 == 1) {
  39.         let max = Math.max(...newArr[k]);
  40.  
  41.         result += max;
  42.  
  43.     } else if (k % 3 == 2) {
  44.         const reducer = (previousValue, currentValue) => previousValue + currentValue;
  45.         let avrg = Math.floor(newArr[k].reduce(reducer) / newArr[k].length);
  46.  
  47.         result+= avrg;
  48.        
  49.     }
  50. }
  51. print(result);
  52.  
  53.  
Add Comment
Please, Sign In to add comment