Vova JS Puzzle

by paulftw

JavaScript

var test1 = [
    [5,4,3,2,1],
    [4,1],
    [5,0,0],
    [6,4,2],
    [1],
];
    
    var test2 = [
    [5,4,3,2,1],
    ];

var test2 = [
    [5,4,3,2,1],
];

var ans = [];    
    
var take_cur_and_next = function(a, x, l, n) {
    var s = 0;
    for (var i = 0; i < l; i++) {
        s += a[i][x[i]];
    }
    ans.push(s);
    n--;
    if (!n) {
        return;
    }

    best_opt = -1e20;
    best_i = -1;
    for (var i = 0; i < l; i++) {
        if (a[i].length == x[i] - 1) {
            continue;
        }
        var opt = a[i][x[i + 1]] - a[i][x[i]];
        if (opt > best_opt) {
            best_opt = opt;
            best_i = i;
        }
    }
    if (i == -1) {
        return;
    }
};
    
var solve = function(a, n) {
    ans = [];
    if (!n) {
        return ans;
    }
    var max_n = _.foldl(_.map(a, _.size), function(a,b) {return a*b;}, 1);
    n = _.min([n,max_n]);
    console.log('max_n', max_n, n);
    var l = a.length;
    
    var x = [];
    for (var i = 0; i < l; i++) {
        x[i] = 0;
    }
    
    take_this_and_next(a, x, l, n);
    return ans[];
};
 
 solve(test1);