Advertisement
VoidRayChe

Softuniada 03 NEXUS 100%

Jan 28th, 2020
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. function nexus(input){
  2. let arrayOne = input.shift().split(' ');
  3. let arrayTwo = input.shift().split(' ');
  4. nexusArr = input;
  5. let nexusStr = 'notNexus';
  6.  
  7.  
  8. while(nexusStr != 'nexus'){
  9. nexusStr = nexusArr.shift();
  10. if(nexusStr != 'nexus'){
  11. let arr = nexusStr.split(/(\d+):(\d+)\|(\d+):(\d+)/);
  12. let arrayOneBegin = +arr[1], arrayTwoEnd = +arr[2], arrayTwoBegin = +arr[4], arrayOneEnd = +arr[3];
  13. let crossing = false;
  14.  
  15. if(isBetween(arrayOneBegin, arrayTwoBegin, arrayOneEnd) || isBetween(arrayTwoEnd, arrayTwoBegin, arrayOneEnd)
  16. || isBetween(arrayTwoBegin, arrayOneBegin, arrayTwoEnd) || isBetween(arrayOneEnd, arrayOneBegin, arrayTwoEnd))
  17. crossing = true;
  18.  
  19. if(crossing == true){
  20. let nexusValue = +arrayOne[arrayOneBegin] + +arrayOne[arrayOneEnd] + +arrayTwo[arrayTwoBegin] + +arrayTwo[arrayTwoEnd];
  21. if(arrayOneBegin>arrayOneEnd){
  22. let temp = arrayOneBegin;
  23. arrayOneBegin = arrayOneEnd;
  24. arrayOneEnd = temp;
  25.  
  26. }
  27. if(arrayTwoBegin>arrayTwoEnd){
  28. let temp = arrayTwoBegin;
  29. arrayTwoBegin = arrayTwoEnd;
  30. arrayTwoEnd = temp;
  31.  
  32. }
  33. arrayOne.splice(arrayOneBegin, arrayOneEnd-arrayOneBegin+1);
  34. arrayTwo.splice(arrayTwoBegin, arrayTwoEnd-arrayTwoBegin+1);
  35. addNexusValue(arrayOne, nexusValue);
  36. addNexusValue(arrayTwo, nexusValue);
  37. }
  38. crossing = false;
  39. }
  40. else{
  41. print(arrayOne);
  42. print(arrayTwo);
  43. }
  44. }
  45.  
  46. function print(arr){
  47. let strLine = "";
  48. arr.forEach(el => strLine = strLine + ((strLine!="")?", ":"") + el );
  49. console.log(strLine);
  50. }
  51. function addNexusValue(arr, nexusValue){
  52. for(let i = 0; i < arr.length; i++)
  53. arr[i] = +(arr[i]) + nexusValue;
  54. }
  55.  
  56. function isBetween(el, from, to){
  57. if(from > to){
  58. let temp = from;
  59. from = to;
  60. to = temp;
  61. }
  62. if(el >= from && el <= to)
  63. return true;
  64. return false;
  65. }
  66.  
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement