import java.util.;
import java.lang.;
import java.io.*;
class Codechef
{
public static void main (String[] args) throws java.lang.Exception
{
Scanner sc=new Scanner(System.in);
int test=sc.nextInt();
while(test>0)
{
int n=sc.nextInt();
int x=sc.nextInt();
sc.nextLine();
String s=sc.nextLine();
Stack st=new Stack();
ArrayList list=new ArrayList();
for(int i=0; i<n; i++)
{
if(s.charAt(i)==‘0’)
st.push(‘0’);
else
{
// System.out.println(“BeforeStack”+st);
int count=0;
while(st.size()>0 && st.peek()!=‘1’)
{
count++;
st.pop();
}
// System.out.println(“AfterStack”+st);
if(list.size()==0)
list.add(count);
else
{
// System.out.println(“BeforeList”+list+" “+count);
if(st.size()>0)
{
int elem=list.get(list.size()-1)+count+1;
int indx=list.size()-1;
list.set(indx,elem);
st.pop();
}
else
{
list.set(list.size()-1,list.get(list.size()-1)+count);
}
list.add(count);
// System.out.println(“AfterList”+list+” "+count);
}
st.push(‘1’);
//System.out.println(list);
}
}
int count=0;
while(st.size()>0 && st.peek()!=1)
{
count++;
st.pop();
}
if(st.size()>0)
{
if(list.size()>0)
list.set(list.size()-1,list.get(list.size()-1)+count+1);
}
else
{
if(list.size()>0)
list.set(list.size()-1,list.get(list.size()-1)+count);
}
list.add(count);
// System.out.println(list);
Collections.sort(list);
System.out.println((list.get(list.size()-1))/x);
test–;
}
}
}
can you please tell me on which test case it will give wrong answer