二分做的
#include<bits/stdc++.h>
using namespace std;
char ch[100001];
int r[100001];
int num,tot=0;
int n,k;
bool pan(int x)
{
num=0;
tot=1;
for(int i=1;i<=n;i++)
{
if(ch[i]=='F')
{
r[i]=1;
}
if(ch[i]=='N')
{
r[i]=2;
}
}
for(int i=2;i<=n;i++)
{
if(r[i]==r[i-1])
{
tot++;
}
if(tot>x)
{
num++;
if(r[i]==1)
{
r[i]=2;
}
else r[i]=1;
}
if(r[i]!=r[i-1])
{
tot=1;
}
}
if(num>k)
{
return 0;
}
else return 1;
}
int main()
{
cin>>n>>k;
if(n==1)
{
cout<<1;
return 0;
}
if(n==k)
{cout<<1;
return 0;
}
for(int i=1;i<=n;i++)
{
cin>>ch[i];
}
int y=1;
for(int i=2;i<=n;i++)
{
if(ch[i]==ch[i-1])
{
y++;
}
}
if(y==n)
{
cout<<n/(k+1);
return 0;
}
int ans=0;
int left=1;
int mid;
int right=n;
while(left<=right)
{
mid=(left+right)/2;
if(pan(mid)==1)
{
right=mid-1;
}
else left=mid+1;
}
cout<<left;
return 0;
}