JSFiddle - React, Tailwind, and code Playground

by ivanovsuper

HTML

<script src="http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js"></script>
<input id="in" size="50" value="1,1,2,3,4,7,10,20,30,40,50,60,120,127"/><br/>
 <input id="out1" size="50"/> <input id="outs1" size="20"/> <br/>
 <input id="out2" size="50"/> <input id="outs2" size="20"/> <br/> 
<textarea id="log" rows="30" cols="50"></textarea>

JavaScript

var a = $("#in").val().split(','); //[1,2,3,4,10,20,30,40];
a = $.map(a, function(aa) {
    return parseInt(aa);
});
a.sort(function(a, b) {
    return a - b;
});
$("#in").val(JSON.stringify(a));
var n = a.length - 1,
    s1 = 0,
    s2 = 0,
    a1 = [],
    a2 = [],
    va1, va2, j;
for (var k = n; k >= 1; k -= 2) {
    if (s1 <= s2) {
        j = 0;
        while (s1 + a[k] > s2 + a[j] && j < k - 1) j++;
        $("#log").val($("#log").val() + "\n" + k + "," + j);
        va1 = a.splice(k, 1)[0];
        va2 = a.splice(j, 1)[0];
    }
    else {
        j = 0;
        while (s2 + a[k] > s1 + a[j] && j < k - 1) j++;
        $("#log").val($("#log").val() + "\n" + k + "," + j);
        va2 = a.splice(k, 1)[0];
        va1 = a.splice(j, 1)[0];
    }
    $("#log").val($("#log").val() + "\n" + JSON.stringify(a));
    a1[a1.length] = va1;
    a2[a2.length] = va2;
    s1 += va1;
    s2 += va2;
}
$("#out1").val(JSON.stringify(a1));
$("#outs1").val(s1);
$("#out2").val(JSON.stringify(a2));
$("#outs2").val(s2);