Advertisement
Guest User

Untitled

a guest
Feb 28th, 2020
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.77 KB | None | 0 0
  1. solve = (inp) => {
  2. let field = inp.shift().split('|').map(x => Number(x));
  3. let points = 0
  4. for (let i = 0; i < inp.length; i++) {
  5. let command = inp[i].split('@')
  6. let action = command[0];
  7. let position = command[1];
  8. let movement = command[2];
  9.  
  10. if (position >= 0 && position < field.length || !position) {
  11. if (action == 'Shoot Left') {
  12. for (let i = 0; i < movement; i++) {
  13. field.unshift(field.pop());
  14. };
  15. if (field[position] >= 5) {
  16. field[position] -= 5;
  17. points += 5
  18. } else {
  19. let num = -1 * ( 0 - field[position] );
  20. points += num;
  21. field[position] = 0
  22. }
  23.  
  24. for (let i = 0; i < movement; i++) {
  25. field.push(field.shift());
  26. }
  27. } else if (action == 'Shoot Right') {
  28. for (let i = 0; i < movement; i++) {
  29. field.push(field.shift());
  30. };
  31. if (field[position] >= 5) {
  32. field[position] -= 5;
  33. points += 5
  34. } else {
  35. let num = -1 * ( 0 - field[position] );
  36. points += num;
  37. field[position] = 0
  38. }
  39. for (let i = 0; i < movement; i++) {
  40. field.unshift(field.pop());
  41. }
  42. } else if (action == 'Reverse') {
  43. field.reverse();
  44. } else if (action == 'Game over') {
  45. console.log(field.join(' - '));
  46. console.log(`Iskren finished the archery tournament with ${points} points!`);
  47. }
  48. }
  49. }
  50. };
  51.  
  52. solve([
  53. '10|10|10|10|10',
  54. 'Shoot Left@0@2',
  55. 'Shoot Right@4@5',
  56. 'Shoot Right@6@5',
  57. 'Reverse',
  58. 'Game over',
  59. ]);
  60.  
  61. /*
  62.  
  63. log <tab>
  64. crl + d
  65. shift alt i
  66. ------------------------------------------------------------------------------------------------------------------------
  67. let ans = new Array(n).fill().map(() => new Array(m).fill('')); ----- 2D arrays
  68.  
  69. console.log(ans.map(row => row.join(" ")).join("\n")); -------------- Clean logged 2D arrays
  70. ------------------------------------------------------------------------------------------------------------------------
  71. REGEXP:
  72. ^word& - трябва да е точно и само "word", ^ спира всичко преди, & спира всичко след
  73. ^word& - true
  74. word&, mfkinezword - true
  75. ^word, wordismfker - true
  76. [a - z], [0 - 9], [A - Z] - съвпадение От До, написано така търси само 1 символ
  77. [1234], [abc] - съвпадение по конкретни символи
  78. [a - z]*, [a - z]+ - / с + търси 1 / с * търси 0 / или повече символи, удачно за цели думи
  79. [a - z]{1, 4} - 1 до 4 символа, точни размери
  80. a? - а става незадължителен символ, true и с и без него
  81. \d+ - 1 или по дълга редица от числа
  82. \w+ - 1 или по дълга дума с ДУМА с вклчено долно тире [0-9a-zA-Z_]
  83. \s - проверка за празно място
  84. \n - проверка за нов ред след \n
  85. /g - в края на проверката /g за да намира всички съвпадения в целия стринг
  86. ----------------------------------------------------------------------------------------------------------------------
  87. ([a-z]+) - с нормални скоби, ( ), може да извлечеш дадения стринг като променлива
  88. използва се let match = (let) regex.exec((let) string)
  89. ако match == true, то съвпадението се извлича с match[1]
  90. ако match == false, match[1] ще излиза undefined
  91.  
  92. while (match) {
  93. log(match[1]);
  94. match = regex.exec(string)
  95. }
  96.  
  97. */
  98.  
  99.  
  100. /*
  101.  
  102. MEGA GIGA ZADACHA ZA OBEKTI
  103. solve = (input) => {
  104. let register = {};
  105. for (let line of input) {
  106. let [systemName, componentName, subcomponentName] = line.split(' | ');
  107. if (!register.hasOwnProperty(systemName)) {
  108. register[systemName] = {};
  109. }
  110. if (!register[systemName].hasOwnProperty(componentName)) {
  111. register[systemName][componentName] = [];
  112. }
  113. register[systemName][componentName].push(subcomponentName);
  114. }
  115. console.log(register);
  116.  
  117. let sortedKeys = Object.keys(register).sort((a, b) => Object.keys(register[b]).length - Object.keys(register[a]).length || a.localeCompare(b));
  118. sortedKeys.forEach((key) => {
  119. console.log(key);
  120. let sortedSubKeys = Object.keys(register[key]).sort((a, b) => Object.keys(register[key][b]).length - Object.keys(register[key][a]).length);
  121. sortedSubKeys.forEach((subKey) => {
  122. console.log(`|||${subKey}`);
  123. register[key][subKey].forEach((subComponent) => {
  124. console.log(`||||||${subComponent}`);
  125. });
  126. });
  127. });
  128. };
  129.  
  130. solve(['SULS | Main Site | Home Page',
  131. 'SULS | Main Site | Login Page',
  132. 'SULS | Main Site | Register Page',
  133. 'SULS | Judge Site | Login Page',
  134. 'SULS | Judge Site | Submittion Page',
  135. 'Lambda | CoreA | A23',
  136. 'SULS | Digital Site | Login Page',
  137. 'Lambda | CoreB | B24',
  138. 'Lambda | CoreA | A24',
  139. 'Lambda | CoreA | A25',
  140. 'Lambda | CoreC | C4',
  141. 'Indice | Session | Default Storage',
  142. 'Indice | Session | Default Security']);
  143. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement