#include<bits/stdc++.h>
using namespace std;
int n,k;
bool a[100100];
bool IF(int ans)
{
int u=0;
int ret=0;
bool u1=a[1];
for(int i=1;i<=n;i++)
{
if(a[i]==u1)
{
u++;
}
else
{
u=1;
u1=a[i];
}
if(u>ans)
{
ret++;
u=0;
u1=a[i+1];
}
}
if(ret>k)
return 1;
else
return 0;
}
int findW()
{
int left=1;
int right=n;
while(left<=right)
{
int mid=(right+left)/2;
if(IF(mid)==1)
{
left=mid+1;
}
else
{
right=mid-1;
}
}
return left;
}
int main()
{
cin>>n>>k;
for(int i=1;i<=n;i++)
{
char t;
cin>>t;
switch(t)
{
case 'N':
a[i]=1;
break;
case 'F':
a[i]=0;
break;
}
}
cout<<findW();
return 0;
}
WA in #1 #2 #8 #9
提交记录