using
System;
using
System.Collections.Generic;
public
class
GFG {
static
String ORing(String a, String b) {
String ans =
""
;
int
n = a.Length;
for
(
int
i = 0; i < n; i++) {
if
(a[i] ==
'1'
|| b[i] ==
'1'
)
ans +=
"1"
;
else
ans +=
"0"
;
}
return
ans;
}
static
String reverse(String input) {
char
[] a = input.ToCharArray();
int
l, r = a.Length - 1;
for
(l = 0; l < r; l++, r--) {
char
temp = a[l];
a[l] = a[r];
a[r] = temp;
}
return
String.Join(
""
,a);
}
static
int
solve(String str,
int
N,
int
K)
{
List<String> v1 =
new
List<String>();
int
windowsize = K;
int
i = 0;
int
j = 0;
String temp =
""
;
while
(j < N) {
temp += (str[j]);
if
(j - i + 1 < windowsize) {
j++;
}
else
{
v1.Add(temp);
temp = reverse(temp);
temp = temp.Substring(0, temp.Length - 1);
temp = reverse(temp);
i++;
j++;
}
}
String a = v1[0];
for
(i = 1; i < v1.Count; i++) {
a = ORing(a, v1[i]);
}
int
count = 0;
for
(i = 0; i < a.Length; i++) {
if
(a[i] ==
'1'
) {
count++;
}
}
return
count;
}
public
static
void
Main(String[] args)
{
int
N = 4;
int
K = 3;
String str =
"1111"
;
Console.Write(solve(str, N, K));
}
}