<script>
function
count_zeroes(n, str) {
var
cnt = 0;
for
(
var
i = 0; i < str.length; i++)
{
if
(str[i] ===
"0"
) cnt++;
}
return
cnt;
}
function
kReducingStringUtil(n, k, str, no_of_zeroes)
{
var
zeroes_in_2k =
parseInt((no_of_zeroes * (2 * k)) / n);
var
ones_in_2k = 2 * k - zeroes_in_2k;
var
temp_str =
""
;
for
(
var
i = 0; i < zeroes_in_2k / 2; i++)
{
temp_str +=
"0"
;
}
for
(
var
i = 0; i < ones_in_2k; i++)
{
temp_str +=
"1"
;
}
for
(
var
i = 0; i < zeroes_in_2k / 2; i++)
{
temp_str +=
"0"
;
}
var
final_str =
""
;
for
(
var
i = 0; i < n / (2 * k); i++)
{
final_str += temp_str;
}
for
(
var
i = 0; i < n % (2 * k); i++)
{
final_str += temp_str[i];
}
return
final_str;
}
function
kReducingString(n, k, str)
{
var
no_of_zeroes = count_zeroes(n, str);
var
no_of_ones = n - no_of_zeroes;
if
(no_of_zeroes === 0 || no_of_zeroes === n)
{
return
str;
}
if
(k === 1) {
if
(no_of_zeroes === 0 || no_of_zeroes === n)
{
return
str;
}
else
{
return
"Not Possible"
;
}
}
var
check =
false
;
for
(
var
i = n / k; i < n; i += n / k) {
if
(no_of_zeroes === i || no_of_ones === i)
{
check =
true
;
break
;
}
}
if
(check ===
false
) {
return
"Not Possible"
;
}
return
kReducingStringUtil(n, k, str, no_of_zeroes);
}
var
str =
"0000100001100001"
;
var
K = 4;
var
N = str.length;
document.write(kReducingString(N, K, str));
</script>