SHOW:
|
|
- or go back to the newest paste.
1 | function solve (input) { | |
2 | let fieldSize = +(input[0]); | |
3 | let bugs = input[1].split(' ').map(el => +(el)); | |
4 | if (input[1] === '') { | |
5 | bugs = []; | |
6 | } | |
7 | let commands = input.slice(2); | |
8 | let field = []; | |
9 | ||
10 | // initial field | |
11 | for (let i = 0; i < fieldSize; i++) { | |
12 | bugs.indexOf(i) !== -1 ? field.push(1) : field.push(0); | |
13 | } | |
14 | ||
15 | for (let c in commands) { | |
16 | let temp = commands[c].split(' '); | |
17 | let position = +(temp[0]); | |
18 | if (commands[c] === '' || position < 0 || position >= fieldSize || field[position] !== 1) { | |
19 | continue; | |
20 | } | |
21 | let right = 'right' === temp[1]; | |
22 | let step = +(temp[2]); | |
23 | field[position] = 0; // Bug flies away | |
24 | ||
25 | while (position >= 0 && position < fieldSize) { // while flying in the field | |
26 | right ? position += step : position -= step; // go right or left | |
27 | ||
28 | if (field[position] === 0) { // check for empty spot | |
29 | field[position] = 1; | |
30 | break; | |
31 | } | |
32 | } | |
33 | } | |
34 | console.log(field.join(' ')); | |
35 | } |