didkoslawow

Untitled

Jan 21st, 2023
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function airPollution(mapInput, commandLine) {
  2.   const map = [];
  3.   mapInput.forEach((element) => {
  4.     map.push(element.split(' ').map(Number));
  5.   });
  6.   const commandLineLength = commandLine.length;
  7.  
  8.   for (let i = 0; i < commandLineLength; i++) {
  9.     const command = commandLine[i].slice(0).split(' ')[0];
  10.     const commandValue = Number(commandLine[i].slice(0).split(' ')[1]);
  11.     const mapLength = map.length;
  12.  
  13.     switch (command) {
  14.       case 'breeze':
  15.         for (let column = 0; column < map[commandValue].length; column++) {
  16.           if (map[commandValue][column] - 15 >= 0) {
  17.             map[commandValue][column] -= 15;
  18.           } else {
  19.             map[commandValue][column] = 0;
  20.           }
  21.         }
  22.         break;
  23.       case 'gale':
  24.         for (let row = 0; row < mapLength; row++) {
  25.           if (map[row][commandValue] - 20 >= 0) {
  26.             map[row][commandValue] -= 20;
  27.           } else {
  28.             map[row][commandValue] = 0;
  29.           }
  30.         }
  31.         break;
  32.       case 'smog':
  33.         for (let row = 0; row < mapLength; row++) {
  34.           for (let column = 0; column < mapLength; column++) {
  35.             map[row][column] += commandValue;
  36.           }
  37.         }
  38.         break;
  39.     }
  40.   }
  41.  
  42.   let pollutedBlocks = [];
  43.  
  44.   for (let i = 0; i < map.length; i++) {
  45.     for (let j = 0; j < map[i].length; j++) {
  46.       if (map[i][j] >= 50) {
  47.         pollutedBlocks.push(`[${i}-${j}]`);
  48.       }
  49.     }
  50.   }
  51.   if (pollutedBlocks.length === 0) {
  52.     console.log(`No polluted areas`);
  53.   } else {
  54.     console.log(`Polluted areas: ${pollutedBlocks.join(', ')}`);
  55.   }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment