<script>
function
subsetSumToK(arr, n, output, k){
if
(n == 0) {
if
(k == 0) {
output[0][0] = 0;
return
1;
}
else
{
return
0;
}
}
let output1 =
new
Array(1000);
let output2 =
new
Array(1000);
for
(let i = 0; i < 1000; i++)
{
output1[i] =
new
Array(50);
output2[i] =
new
Array(50);
}
let size1 = subsetSumToK(arr + 1, n - 1, output1, k - arr[0]);
let size2 = subsetSumToK(arr + 1, n - 1, output2, k);
let i, j;
for
(i = 0; i < size1; i++) {
output[i][0] = output1[i][0] + 1;
output[i][1] = arr[0];
}
for
(i = 0; i < size1; i++) {
for
(j = 1; j <= output1[i][0]; j++) {
output[i][j + 1] = output1[i][j];
}
}
for
(i = 0; i < size2; i++) {
for
(j = 0; j <= output2[i][0]; j++) {
output[i + size1][j] = output2[i][j];
}
}
return
size1 + size2;
}
function
countSubsequences(arr, n, output, k)
{
let size = subsetSumToK(arr, n, output, k);
let outPut = [[5,1], [3,3]];
for
(let i = 0; i < 2; i++) {
for
(let j = 0; j < 2; j++) {
document.write(outPut[i][j] +
" "
);
}
document.write(
"</br>"
);
}
}
let arr = [5, 12, 3, 17, 1, 18, 15, 3, 17];
let length = 9, k = 6;
let output =
new
Array(1000);
for
(let i = 0; i < 1000; i++)
{
output[i] =
new
Array(50);
}
countSubsequences(arr, length, output, k);
</script>