fork download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main(int argc, const char * argv[]) {
  6.  
  7. int t,n,k;
  8. string tab;
  9. cin>>t;
  10.  
  11. for(int f=0;f<t;f++){
  12.  
  13. cin>>n;
  14. cin>>k;
  15.  
  16.  
  17.  
  18. cin>>tab; //0101000001
  19.  
  20. int aktualnaIloscJedynek=0;
  21. int max_dl=1, poczatek, dl=1, p=0, pierwszJedynka=0;
  22.  
  23. poczatek=p=0;
  24.  
  25. for(int i=0;i<n;i++){
  26.  
  27. if(tab[i]=='0'){ //sprawdza czy jest rowna 0 jak tak to bez lipy przechodzi dalej
  28. dl++;
  29. //cout<<"i: "<<i<<" "<<0<<"dlugosc- "<<dl<<endl;
  30.  
  31.  
  32. if(dl>max_dl){
  33. max_dl=dl;
  34. }
  35.  
  36. }else{
  37.  
  38. if(tab[i]=='1' && aktualnaIloscJedynek<k){ //sprawdza czy jest 1 a jak tak czy ilosc jedynek nie jest wieksza niz k
  39.  
  40.  
  41. if(aktualnaIloscJedynek==0){
  42. pierwszJedynka=i;
  43.  
  44. }
  45.  
  46. dl++;
  47.  
  48. aktualnaIloscJedynek++;
  49.  
  50. if(dl>max_dl){
  51. max_dl=dl;
  52. }
  53.  
  54. }else{
  55. i=pierwszJedynka+1;
  56. aktualnaIloscJedynek=0;
  57. dl=1;
  58. }
  59. }
  60.  
  61.  
  62.  
  63.  
  64.  
  65. }
  66.  
  67.  
  68.  
  69.  
  70. cout<<max_dl<<endl;
  71.  
  72.  
  73.  
  74. }
  75.  
  76.  
  77.  
  78. return 0;
  79. }
  80.  
  81. /*
  82.  10 1
  83.  0101000001
  84.  */
  85.  
Success #stdin #stdout 0s 15240KB
stdin
3
10 1
0101000001
12 2
010110101001
15 3
101000011100100
stdout
7
7
9