AlexKondov

Telerik.JoroTheNaughty

Jul 23rd, 2014
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(args) {
  2.     var size = args[0].split(" ");
  3.     var rows = size[0];
  4.     var cols = size[1];
  5.     var jumps = size[2];
  6.    
  7.     var start = args[1].split(" ").map(Number);
  8.     var startRows = start[0];
  9.     var startCols = start[1];
  10.  
  11.     var matrix = [];
  12.     var counter = 1;
  13.  
  14.     for (var i = 0; i < rows; i++) {
  15.         matrix[i] = [];
  16.         for (var j = 0; j < cols; j++) {
  17.             matrix[i] [j] = counter;
  18.             counter++;
  19.         }
  20.     }
  21.  
  22.     var visited = [];
  23.     var allJumps = [];
  24.  
  25.     visited.push(matrix[startRows] [startCols]);
  26.     for (var i = 0; i < jumps; i++) {
  27.             allJumps.push(args[i + 2]);
  28.     }
  29.  
  30.     var k = 0;
  31.     var sum = matrix[startRows] [startCols];
  32.  
  33.     while (true) {
  34.         if (k > jumps - 1) {
  35.             k = 0;
  36.         }
  37.         var nextJump = allJumps[k].split(" ").map(Number);
  38.         //console.log(nextJump);
  39.         k++;
  40.        
  41.  
  42.         startRows += nextJump[0];
  43.         startCols += nextJump[1];
  44.        
  45.        
  46.         if (startRows < 0 || startCols < 0 || startRows > rows - 1 || startCols > cols - 1) {
  47.             return ("escaped " + sum);
  48.         }
  49.         sum += matrix[startRows] [ startCols];
  50.         if (visited.indexOf(matrix[startRows][startCols] = - 1)) {
  51.             visited.push(matrix[startRows] [startCols]);
  52.         }
  53.         else {
  54.             return ('caught ' + visited.length);
  55.         }
  56.  
  57.     }
  58. }
  59.  
  60. console.log(solve(['6 7 3', '0 0', '2 2', '-2 2', '3 -1']));
Advertisement
Add Comment
Please, Sign In to add comment