var n=12; G=2; a = Math.pow(2,n+1); // KNAPSACKj.js
var dec, i, h, k, max, m, s;
var L=[n], C=[n], j=[n], q=[a], d=[a]; e=[a];
print("# Kol Cena")
print("# Amo Price")
for (i=0; i<n; i++)
{ L[i]=1+Math.floor(Math.random()*3)
C[i]=10+Math.floor(Math.random()*9); j[i]=0;
print( (i+1) +" "+ L[i] +" "+ C[i])
}
for (i=0; i<a; i++) { q[i]=0; d[i]=0;}
print("")
print("Mx Kol St-st Schifr")
print("Mx Amo Price Cipher")
for (h = a-1; h>(a-1)/2; h--)
{ dec=h; e[h]=""
while (dec > 0)
{ s = Math.floor(dec % 2);
e[h] = s + e[h]; dec = Math.floor(dec/2);
}
if (e[h] == "") {e[h] = "0";}
e[h]= e[h].substr(1, e[h].length-1);
for (k=0; k<n; k++)
{ j[k] = Number(e[h].substr(k,1));
q[h]=q[h]+L[k]*j[k]*C[k];
d[h]=d[h]+L[k]*j[k];
}
if (d[h] <= G)
print(G +" "+ d[h] +" "+ q[h] +" "+ e[h])
} print("")
max=0; m=1;
for (i=0; i<a; i++)
{ if (d[i]<=G && q[i]>max){ max=q[i]; m=i;}
}
print(d[m] +" "+ q[m] +" "+ e[m])
print("Mx St-st Schifr")
print("Mx Price Cipher")
dmFyIG49MTI7IEc9MjsgYSA9IE1hdGgucG93KDIsbisxKTsgLy8gS05BUFNBQ0tqLmpzCnZhciBkZWMsIGksIGgsIGssIG1heCwgbSwgczsgCnZhciBMPVtuXSwgQz1bbl0sIGo9W25dLCBxPVthXSwgZD1bYV07IGU9W2FdOwpwcmludCgiIyAgS29sIENlbmEiKQpwcmludCgiIyAgQW1vIFByaWNlIikKZm9yIChpPTA7IGk8bjsgaSsrKQp7IExbaV09MStNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMykgCiAgQ1tpXT0xMCtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqOSk7IGpbaV09MDsKICBwcmludCggKGkrMSkgKyIgIisgTFtpXSArIiAiKyBDW2ldKSAKfSAKIApmb3IgKGk9MDsgaTxhOyBpKyspIHsgcVtpXT0wOyBkW2ldPTA7fQpwcmludCgiIikKcHJpbnQoIk14IEtvbCBTdC1zdCBTY2hpZnIiKSAKcHJpbnQoIk14IEFtbyBQcmljZSBDaXBoZXIiKSAKZm9yIChoID0gYS0xOyBoPihhLTEpLzI7IGgtLSkKeyBkZWM9aDsgZVtoXT0iIgp3aGlsZSAoZGVjID4gMCkKeyBzID0gTWF0aC5mbG9vcihkZWMgJSAyKTsKICBlW2hdID0gcyArIGVbaF07IGRlYyA9IE1hdGguZmxvb3IoZGVjLzIpOwp9CmlmIChlW2hdID09ICIiKSB7ZVtoXSA9ICIwIjt9IAplW2hdPSBlW2hdLnN1YnN0cigxLCBlW2hdLmxlbmd0aC0xKTsgCmZvciAoaz0wOyBrPG47IGsrKykKeyBqW2tdID0gTnVtYmVyKGVbaF0uc3Vic3RyKGssMSkpOyAKICBxW2hdPXFbaF0rTFtrXSpqW2tdKkNba107CiAgZFtoXT1kW2hdK0xba10qaltrXTsKfQppZiAoZFtoXSA8PSBHKQpwcmludChHICsiICIrIGRbaF0gKyIgIisgcVtoXSArIiAiKyBlW2hdKSAKfSBwcmludCgiIikKbWF4PTA7IG09MTsKZm9yIChpPTA7IGk8YTsgaSsrKQp7IGlmIChkW2ldPD1HICYmIHFbaV0+bWF4KXsgbWF4PXFbaV07IG09aTt9Cn0KcHJpbnQoZFttXSArIiAiKyBxW21dICsiICIrIGVbbV0pIApwcmludCgiTXggU3Qtc3QgU2NoaWZyIikKcHJpbnQoIk14IFByaWNlIENpcGhlciIpIAoK