Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- solve = (inp) => {
- let field = inp.shift().split('|').map(x => Number(x));
- let points = 0
- for (let i = 0; i < inp.length; i++) {
- let command = inp[i].split('@')
- let action = command[0];
- let position = command[1];
- let movement = command[2];
- if (position >= 0 && position < field.length || !position) {
- if (action == 'Shoot Left') {
- for (let i = 0; i < movement; i++) {
- field.unshift(field.pop());
- };
- if (field[position] >= 5) {
- field[position] -= 5;
- points += 5
- } else {
- let num = -1 * ( 0 - field[position] );
- points += num;
- field[position] = 0
- }
- for (let i = 0; i < movement; i++) {
- field.push(field.shift());
- }
- } else if (action == 'Shoot Right') {
- for (let i = 0; i < movement; i++) {
- field.push(field.shift());
- };
- if (field[position] >= 5) {
- field[position] -= 5;
- points += 5
- } else {
- let num = -1 * ( 0 - field[position] );
- points += num;
- field[position] = 0
- }
- for (let i = 0; i < movement; i++) {
- field.unshift(field.pop());
- }
- } else if (action == 'Reverse') {
- field.reverse();
- } else if (action == 'Game over') {
- console.log(field.join(' - '));
- console.log(`Iskren finished the archery tournament with ${points} points!`);
- }
- }
- }
- };
- solve([
- '10|10|10|10|10',
- 'Shoot Left@0@2',
- 'Shoot Right@4@5',
- 'Shoot Right@6@5',
- 'Reverse',
- 'Game over',
- ]);
- /*
- log <tab>
- crl + d
- shift alt i
- ------------------------------------------------------------------------------------------------------------------------
- let ans = new Array(n).fill().map(() => new Array(m).fill('')); ----- 2D arrays
- console.log(ans.map(row => row.join(" ")).join("\n")); -------------- Clean logged 2D arrays
- ------------------------------------------------------------------------------------------------------------------------
- REGEXP:
- ^word& - трябва да е точно и само "word", ^ спира всичко преди, & спира всичко след
- ^word& - true
- word&, mfkinezword - true
- ^word, wordismfker - true
- [a - z], [0 - 9], [A - Z] - съвпадение От До, написано така търси само 1 символ
- [1234], [abc] - съвпадение по конкретни символи
- [a - z]*, [a - z]+ - / с + търси 1 / с * търси 0 / или повече символи, удачно за цели думи
- [a - z]{1, 4} - 1 до 4 символа, точни размери
- a? - а става незадължителен символ, true и с и без него
- \d+ - 1 или по дълга редица от числа
- \w+ - 1 или по дълга дума с ДУМА с вклчено долно тире [0-9a-zA-Z_]
- \s - проверка за празно място
- \n - проверка за нов ред след \n
- /g - в края на проверката /g за да намира всички съвпадения в целия стринг
- ----------------------------------------------------------------------------------------------------------------------
- ([a-z]+) - с нормални скоби, ( ), може да извлечеш дадения стринг като променлива
- използва се let match = (let) regex.exec((let) string)
- ако match == true, то съвпадението се извлича с match[1]
- ако match == false, match[1] ще излиза undefined
- while (match) {
- log(match[1]);
- match = regex.exec(string)
- }
- */
- /*
- MEGA GIGA ZADACHA ZA OBEKTI
- solve = (input) => {
- let register = {};
- for (let line of input) {
- let [systemName, componentName, subcomponentName] = line.split(' | ');
- if (!register.hasOwnProperty(systemName)) {
- register[systemName] = {};
- }
- if (!register[systemName].hasOwnProperty(componentName)) {
- register[systemName][componentName] = [];
- }
- register[systemName][componentName].push(subcomponentName);
- }
- console.log(register);
- let sortedKeys = Object.keys(register).sort((a, b) => Object.keys(register[b]).length - Object.keys(register[a]).length || a.localeCompare(b));
- sortedKeys.forEach((key) => {
- console.log(key);
- let sortedSubKeys = Object.keys(register[key]).sort((a, b) => Object.keys(register[key][b]).length - Object.keys(register[key][a]).length);
- sortedSubKeys.forEach((subKey) => {
- console.log(`|||${subKey}`);
- register[key][subKey].forEach((subComponent) => {
- console.log(`||||||${subComponent}`);
- });
- });
- });
- };
- solve(['SULS | Main Site | Home Page',
- 'SULS | Main Site | Login Page',
- 'SULS | Main Site | Register Page',
- 'SULS | Judge Site | Login Page',
- 'SULS | Judge Site | Submittion Page',
- 'Lambda | CoreA | A23',
- 'SULS | Digital Site | Login Page',
- 'Lambda | CoreB | B24',
- 'Lambda | CoreA | A24',
- 'Lambda | CoreA | A25',
- 'Lambda | CoreC | C4',
- 'Indice | Session | Default Storage',
- 'Indice | Session | Default Security']);
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement